[Windows]robocopyでファイル(ディレクトリ)の差分のみ抽出する

結論

robocopy <差分抽出したいパス> <差分比較対象パス> /xc /xn /xo /xx /xl /is /E /move

詳しい実行例

フォルダAがあり、それをコピーして一部のファイルのみを変更したフォルダBがあるとします。

今回の例ではFolderAをコピーして下記の変更をしたFolderBを用意しました。

  • 3.txtの中身を変更
  • 4.txtを追加
  • FolderYおよびFolderY\y (1).txtを追加

この状態から、FolderAとFolderBを比較して変更・追加があったファイルだけを残したディレクトリFolderCを作るには、下記コマンドを実行すればOKです。

# FolderBのコピーをFolderCに作る
copy-item FolderB FolderC -Recurse

# robocopyで差異がないファイルだけFloderCからFolderAに移動する
robocopy FolderC FolderA /xc /xn /xo /xx /xl /is /E /move

実行結果は下記の通り。変更・追加したファイルだけFolderCに残っています。

解説

robodopyコマンドの意味は、「FolderCからFolderAに差異が無いファイルのみ移動する」という意味になっています。

差異の無いファイルのみを FolderCからFolderAに移動しているので、結果としてFolderAの中身は変化がなく、FolderC内の差異があるファイルは移動しない…つまり差異があるファイルだけFolderCに残るということです。

robocopyのオプションについては、robocopy /?で詳細を確認できますので、そちらを参照ください。

コメントを残す