robocopy を使って差分ファイルを別フォルダにコピー
2つのフォルダの内容を比較して、差分ファイルだけを別フォルダにコピーする方法です。
サブディレクトリのあるフォルダも対象にできます。
目的
フォルダAとフォルダBの内容を比較して、差分をフォルダCにコピーしたい。
たとえば、Aには古いバージョン、Bには新しいバージョンのファイルが入っているとして、
・A → Bで追加・変更されたファイルだけを抽出して別フォルダにコピー
・フォルダA・Bの内容は変更しない
ということを実現するのが目的です。
こういうフリーのツールがありました。
・指定した2つのフォルダ間で、ファイル名・ファイルサイズ・更新時間で比較し、それを指定したフォルダにコピーまたは移動する、差分ファイル取得ツールです。
Saboon!(サブーン)の詳細情報 : Vector ソフトを探す!
・フォルダの階層を維持したまま保存します(ミラーリングコピー)。
・比較するフォルダとは別の保存先を指定することができます。
このツールでも良いのですが、差分がなくてもフォルダ構成だけはコピーされてしまう(空ディレクトリが作成される)点が自分の要件とマッチしませんでした。
その代わりとして、robocopy を使用する方法を次に紹介します。
robocopy を使用する方法
例として、以下の2つのフォルダを比較する前提で手順を記載します。
dir1 | 比較元フォルダ |
dir2 | 比較先フォルダ |
事前準備
まず、作業用にワークフォルダを作成しておきます(中身は空でOK)
old | 比較元ワーク |
new | 比較先ワーク |
*1:ミラー指定しておけば、ワークに余計なファイルがあっても勝手に除去してくれます