我正在尝试将文件夹和子文件夹从服务器复制到 PC(远程)。
$source='\\\server1\folder\\*'
$destination='\\\PC1\c$\temp\folder'
copy-item -path $source -destination $destination -recurse -force
如果我执行一次,就会产生错误,但如果我再次运行相同的命令,它会完成而不会出现错误
错误是多个实例:
copy-item : container cannot be copied onto existing leaf item.
%
%
%
+ categoryinfo : Invalidargument: (\\server1\folder:string) [copy-item] PSargumentexception
+FullyQualifiedErrrId : CopyContainerItemToLeafError,Microsoft.powershell.Commands.CopyItemCommand
就像我说的,第二次运行命令时它没有错误地完成了。我做错了什么导致第一次运行出现错误?
答案1
像这样设置源变量$source='\\server1\folder'
并排除星号 (*
),就像提供的示例一样。您无需转义反斜杠 (\
) 字符,并在其后加上一个反斜杠,因此在 UNC 路径中也要省略掉这个反斜杠。
考虑使用
$source='\\server1\folder'
$destination='\\PC1\c$\temp\folder'
Copy-Item -Recurse -Filter *.* -path $source -destination $destination -Force
笔记: 使用-Filter
用于通配符字符串模式等