[Windows] 2つのフォルダを比較して差分ファイル(新規または更新)のみコピーを作成する

投稿者: | 2015/09/04

お仕事でタイトルにある様な処理を定期に実行させなければならなくなりました。

環境がWindows だったので、下記の様なバッチスクリプトを書いて、タスクスケジューラで定期実行させることにしました。

差分の単純なバックアップなんかは、こんなんで充分じゃないでしょうか。

@echo off

SET DIR_ORIGINS=C:¥hoge¥
SET DIR_DESTINATIONS=D:¥piyo¥

xcopy /I /Y /D %DIR_ORIGINS% %DIR_DISTINATIONS%

DIR_ORIGINS 下のファイルをDIR_DESTINATIONS 下にコピーします。
xcopy に続くI,Y,D のオプション指定はそれぞれ以下。

  • I:コピー先ディレクトリが無い場合は作成。
  • Y:同名ファイルがコピー先に存在する場合、上書き確認を行わない。
  • D:同名ファイルがコピー先に存在する場合、ファイル更新日時が新しい場合のみ上書き。

これでタイトルにある様な差分ファイルだけのコピーが可能になります。

まあ、実際にはあとZオプションを指定したり、一定期間を過ぎたコピー先ファイルは削除したりといった処理もさせるんですが、それはまた別のお話。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータがどう処理されているか知りたい方はこちらをお読みください