ファイルの差分をとったり
一覧を取ったりする何かいい方法ないかなぁ~。
と色々調べていたら robocopyが使える という記事を見かけた。
なので早速試してみた
robocopy D:\A D:\B /L /E /Z /R:1 /FP /NS /PURGE /LOG:D:\フォルダ比較結果.txt
AとBのフォルダの中身を比較して
その差分だけのリストを取り出す。
とりあえず上記のオプションはこちら
/L :: リストのみ – いずれのファイルにも、コピー、タイムスタンプの追加、または削除を実施しません。
/E :: 空のディレクトリを含むサブディレクトリをコピーします。
/Z :: 再起動可能モードでファイルをコピーします。
/R:n :: 失敗したコピーに対する再試行数: 既定値は 1,000,000。
/FP :: 出力にファイルの完全なパス名を含めます。
/NS :: サイズなし – ファイル サイズをログに記録しません。
/PURGE :: 既にコピー元に存在しないコピー先のファイル/ディレクトリを削除します。
/LOG:D:\Aのフォルダ比較結果.txt
味噌は/Lの部分。
この引数を付けることでリストのみを作成する。
他にもカナリのオプションが準備されているので
robocopy /? でみてみると良いかも。
あとは出てきたテキストを整理すれば、
新規や更新、削除などの一覧を取り出すことが出来る。
めっちゃ便利やん!
若干メンドクサイさそうなのは
吐き出される物がSJISだったのでちょっと注意が必要かな?
ただ自分でファイル比較のスクリプトなり何なりを組むよりは手っ取り早そう。
ちなみに、
単純なファイルリストを取り出すだけならば Dirコマンド のほうが早いので、
比較するなら、robocopy
リストを拾うなら、dirコマンド
って覚えておこう。
以上今日のメモでした。