結論
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 /?で詳細を確認できますので、そちらを参照ください。