PowerShell Copy-Item不复制所有文件

时间:2018-08-29 14:45:52

标签: powershell copy-item

我在PowerShell中的复制项有一个奇怪的问题。在下面,您会看到两行几乎相同的代码行,只是源和目标不同。

Copy-Item "A:\*" -Destination "B:\" -Recurse -Force -Verbose -Confirm:$false -ErrorAction SilentlyContinu
Start-Sleep 3
Copy-Item "B:\*" -Destination "D:\" -Recurse -Force -Verbose -Confirm:$false -ErrorAction SilentlyContinu

这些行是脚本的一部分。它首先记下日期并创建一个日志文件,然后清除B和D驱动器。之后,它开始复制。第一个复制项目A:\到B:\有效,它将复制所有内容。

PowerShell进入第二个文件夹时,它仅复制几个文件夹,而仅跳过其余文件夹。它不会引发我任何错误。

当我手动执行第二行时,它可以工作,但是在脚本中时却不能。

这是怎么了?

1 个答案:

答案 0 :(得分:1)

为此,我将使用robocopy,它包含在所有现代版本的Windows中,并且功能非常强大,几乎可以完成您想要的任何复制功能。

ROBOCOPY /MIR <Source> <Target>

/MIR是镜像开关。它将复制源到目标并删除目标中源中不存在的任何内容。将目标保留为源的镜像副本。

如果目录包含大量文件,您可能还想研究/MT多线程开关,以加快处理速度。