1日に何度も実行する「その日更新されたファイルをコピーする」batを作成した時に、少しだけハマったので備忘録として残します。
xcopyコマンド
ディレクトリ構造毎、ファイルをコピーするコマンド
Dオプション、D:MM/DD/YYYYオプション
Dオプション
コピー先に同名ファイルがある場合、更新日が新しい場合のみコピーする。
D:MM/DD/YYYYオプション
指定された日付以降に更新されたファイルだけをコピーする。
ハマった点
「D:MM/DD/YYYYオプション」のみだと「Dオプション」の効果はないので、指定された日付以降に更新されたファイルが毎回コピーされます。
未コピーの指定された日以降に更新されたファイルをコピーしたい場合は、「D:MM/DD/YYYYオプション」と「Dオプション」の両方を指定する必要がある。
rem D:MM/DD/YYYYオプションのみ
rem 実行する毎に更新日がMM/DD/YYYY以降のファイルがコピーされる
xcopy D:MM/DD/YYYY コピー元 コピー先
rem DとD:MM/DD/YYYYオプションを指定
rem 更新日がMM/DD/YYYY以降のファイルがコピーされる
xcopy /D /D:MM/DD/YYYY コピー元 コピー先
感想
参考に記載しているMicrosoft Docsだと分かりやすいので、しっかり公式リファレンスを確認するべきでした。
参考
xcopy
https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/xcopy