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

robocopyPowerShell で再発明する代わりに使用します。

robocopy D:\Test1 D:\Test2 /s

属性だけが異なるファイル (「調整済みファイル」) も含めたい場合は、同様に追加/itします。

于 2013-03-22T08:29:58.757 に答える
-1

$sourcelist ファイルの LastWrite タイム スタンプを確認し、宛先ファイルのタイム スタンプと比較すると思います。

于 2013-03-22T06:19:59.437 に答える