2つのフォルダ内を比較する

チェックサムで比較する

Windows標準コマンド

 cmop dir1 dir2
 fc /b dir1 dir2

WinMerge

WinMergeを使う。

これらの方法は正確だが、時間が掛かる。

ファイル名とタイムスタンプとファイルサイズで比較する

robocopy

 robocopy dir1 dir2 /s /e /log:"c:\tmp\1.log" /l
 robocopy dir2 dir1 /s /e /log:"c:\tmp\2.log" /l
  • 上のコマンドを実行して、1.logと2.logを確認する。
  • ログファイル内のファイル一覧で、先頭に"新しい"や"新しいファイル"という記述があれば、そのファイルは差分を持っている。"新しい"はタイムスタンプが新しく、"新しいファイル"は片方のフォルダにしか存在しないという意味。
  • 差分があったファイル(フォルダ)の数は、ログファイル内の最後で、"コピー済み"に"ファイル 3"、"フォルダ 2"のように記述される。

PowerShellでファイルリストを作ってWinMergeで差分比較

 PS tmp> dir -r dir1 | % { $p = Resolve-Path -Relative $_.FullName; ($p, $_.LastWriteTime, $_.Length) -join "," } > 1.csv
 PS tmp> dir -r dir2 | % { $p = Resolve-Path -Relative $_.FullName; ($p, $_.LastWriteTime, $_.Length) -join "," } > 2.csv
 PS tmp> winmerge.exe .\1.csv .\2.csv

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2016-01-11 (月) 02:10:18