我正在寻找所有 .jpg 文件D:\ZZZ_Phone_test
及其子目录,然后让 Robocopy 将它们复制到D:\ZZZ_Phone_test\1\1\BackUp\
(需要排除,因为它在源代码中)
如果可能的话,我更喜欢使用 Robocopy,而不是编写更复杂的脚本。我打算使用 Robocopy 日志记录和其他选项。如果它不适用于 Robocopy,请提供您想出的任何解释和来源。
这不起作用:
Get-ChildItem -recurse D:\ZZZ_Phone_test -Exclude D:\ZZZ_Phone_test\1\1\BackUp -filter *.jpg | ForEach-Object {
robocopy "D:\ZZZ_Phone_test\$_" "D:\ZZZ_Phone_test\1\1\BackUp\$_" /z /s /v
}
对Robocopy不太熟悉,但是查看帮助,我认为这对您有用:
因为
Get-ChildItem
正在返回文件夹集合,所以我删除了/s
参数。如果只有一个文件夹命名
Backup
并且您希望代码中的路径而不是变量,这应该有效:使用PowerShell别名,可以将其缩短为:
尝试这个:
/z 开关不是必需的,因为不需要复制子目录。