ノウハウ

2017年07月27日 14時45分
  • robocopyコマンド(夜間バックアップ用)

情シスのオープンナレッジ『Syszo』サービス終了のお知らせ

robocopy C:\source D:\dist /MIR /FFT /R:1 /W:1 /COPYALL /NP /NDL /LOG:C:\Logs\log_%DATE:~-10,4%%DATE:~-5,2%%DATE:~-2%.txt

  • コピー元:C:\source
  • コピー先:D:\dist
  • ログ:C:\Logs\log_YYYYMMDD.txt
  • ファイル属性(NTFS権限)付きでコピー
  • ログにコピーされたファイルを表示
  • ミラーリングコピー(コピー元で削除jされたファイルはコピー先からも削除される)

2件の回答があります

夜間バックアップと言うことで、この部分に問題が有ります。

log_%DATE:~-10,4%%DATE:~-5,2%%DATE:~-2%

例えば

2017/07/31 11:59:59 に log_%DATE:~-10,4%%DATE:~-5,2% が 実行されると

log_201707 になりますが、引き続き

2017/08/01 00:00:00 に残りの %DATE:~-2% が 実行されると

log_20170701 になってしまいます。

というわけで

set YYYYMMDD=%DATE%

log_%YYYYMMDD:~-10,4%%YYYYMMDD:~-5,2%%YYYYMMDD:~-2%.txt

log_%DATE:/=%.txt

の方が比較的安全です。

2017年08月04日 02時17分

既に「kovoler」さんが補足されていますが、似たような情報が@ITにもあるので参考にしてください。

私は @IT の情報を基に日付と時間を固定するだけの専用 bat を用意して利用しています。

長時間にわたる複数の robocopy の bat を Call して実行する時に、最初の1度だけ日時設定 bat を実行して、以降はその設定した日時をlogファイルなどに利用しています。そうする事で最初の実行時の日時で robocopy bat のログの日時が固定されるため、後からチェックする際にわかりやすくなります。

Tech TIPS:Windowsのバッチファイル中で日付をファイル名に使用する (1/2) - @IT
http://www.atmarkit.co.jp/ait/articles/0405/01/news002.html

2017年08月31日 21時49分