PowerShell Copy-Item 不复制所有文件
PowerShell Copy-Item not copying all files
PowerShell 中的 Copy-Item 有一个奇怪的问题。下面你看到两行几乎相同的代码,只是源和目标不同。
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 驱动器。之后,它开始复制。第一个,Copy-Item A:\ to B:\ 有效,它复制所有内容。
当 PowerShell 到达第二个时,它只复制几个文件夹并跳过其余文件夹。它不会向我抛出任何错误或任何东西。
当我手动执行第二行时,它有效,但在脚本中时无效。
这里有什么问题?
为此我会使用 robocopy,它包含在 windows 的所有现代版本中并且非常强大,几乎可以完成您想要的任何复制功能。
ROBOCOPY /MIR <Source> <Target>
/MIR
是镜像开关。它会将源复制到目标并删除目标中源中不存在的任何内容。将目标保留为源的镜像副本。
如果目录包含大量文件,您可能还想查看 /MT
多线程开关以加快处理速度。
PowerShell 中的 Copy-Item 有一个奇怪的问题。下面你看到两行几乎相同的代码,只是源和目标不同。
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 驱动器。之后,它开始复制。第一个,Copy-Item A:\ to B:\ 有效,它复制所有内容。
当 PowerShell 到达第二个时,它只复制几个文件夹并跳过其余文件夹。它不会向我抛出任何错误或任何东西。
当我手动执行第二行时,它有效,但在脚本中时无效。
这里有什么问题?
为此我会使用 robocopy,它包含在 windows 的所有现代版本中并且非常强大,几乎可以完成您想要的任何复制功能。
ROBOCOPY /MIR <Source> <Target>
/MIR
是镜像开关。它会将源复制到目标并删除目标中源中不存在的任何内容。将目标保留为源的镜像副本。
如果目录包含大量文件,您可能还想查看 /MT
多线程开关以加快处理速度。