PowerShell中的自定义robocopy脚本
我想将源目录中的所有.txt文件(包括子文件夹中的.txt文件)移动到目标目录 例如: 源目录:PowerShell中的自定义robocopy脚本,powershell,robocopy,Powershell,Robocopy,我想将源目录中的所有.txt文件(包括子文件夹中的.txt文件)移动到目标目录 例如: 源目录:D:\officework\robtest\test1 上面的目录还包含许多子文件夹 目标目录:D:\OFFICE work\robtest\test2 我只想将source dir中的.txt文件移动到上述目标目录,这样目标目录中的每个子文件夹(包括随机文件夹创建)只能有3个.txt文件 下面是我尝试过的代码,但是PowerShell说 文件名、目录名或卷标语法。(D:\OFFICE work\ro
D:\officework\robtest\test1
上面的目录还包含许多子文件夹
目标目录:D:\OFFICE work\robtest\test2
我只想将source dir中的.txt文件移动到上述目标目录,这样目标目录中的每个子文件夹(包括随机文件夹创建)只能有3个.txt文件
下面是我尝试过的代码,但是PowerShell说
文件名、目录名或卷标语法。(D:\OFFICE work\robtest\test1\testtest\Test2\
新文件夹\test01112.txt\)不正确
我不知道为什么在robocopy中的上述路径之后会有额外的“/”
$fileperfolder=3
$source=“D:\OFFICE work\robtest\test1”;
$dest=“D:\OFFICE work\robtest\test2”;
$folderName=[System.IO.Path]::GetRandomFileName();
$fileList=Get ChildItem-Path$source-Filter*.txt-Recurse
写入主机$fileList
$i=0;
foreach($fileList中的文件){
$destiny=$dest+“\”+$folderName
写入主机$file.FullName;
写下主人的命运;
新物品$destiny-类型目录-强制
robocopy$file.FullName$destiny/mov
$i++;
如果($i-eq$fileperfolder){
$folderName=[System.IO.Path]::GetRandomFileName();
$i=0;
}
}
您将得到错误(以及输出中的“目录”),因为robocopy
要求两个文件夹作为第一个参数和第二个参数,可以选择后跟文件名规范列表,但您提供了文件路径作为源
从(我的)重点:
语法
robocopy[…][]
参数
指定源目录的路径
指定目标目录的路径
指定要复制的一个或多个文件。如果需要,可以使用通配符(
或*
)。如果未指定?
参数,则将文件
用作默认值*.
指定要与
命令一起使用的选项robocopy
robocopy
无论如何都不是您所做工作的正确工具
替换
robocopy $file.FullName $destiny /mov
与
代码应该可以执行您想要的操作。robocopy$file.Directory$destiny$file/mov
解决了此问题。使用robocopy有特殊原因吗?为什么不使用移动项目?另外,错误发生在哪一行?
Move-Item $file.FullName $destiny