3

我正在将 10,000 个文件从一个目录复制到另一个目录。

两个目录结构具有相同的文件;但是,尺寸可能不同。

如何强制覆盖具有不同大小的文件并且不要复制相同大小的文件?

到目前为止,我有这个:

$source = 'D:\Test1'
$destination = 'D:\test2'
$exclude = @('*.db','test2.log')
$sourcelist = Get-ChildItem $source -exclude $exclude
foreach ($file in $sourcelist){
  $result = test-path -path "$destination\*" -include $file
  if ($result -like "False"){
    #uncomment the next line to see the value being passed to the $file parameter
    #Write-Host $file
    Copy-Item "$file" -Destination "$destination"
  }
}

我认为这将复制目标上不存在的文件。但是,我也想复制确实存在但大小不同的文件。

4

2 回答 2

10

使用robocopy而不是尝试在 PowerShell 中重新发明它。

robocopy D:\Test1 D:\Test2 /s

如果您还想包含只有属性不同的文件(“调整文件”),/it也可以添加。

于 2013-03-22T08:29:58.757 回答
-1

我认为检查 $sourcelist 文件 LastWrite 时间戳,然后将其与目标文件时间戳进行比较。

于 2013-03-22T06:19:59.437 回答