問題点
バッチファイルにrobocopyコマンドを記述してデータのバックアップを取っているのですが、気になることが1つありました。
ログファイルの最後に出力される「合計」などの部分がズレて読みにくいんですよね^^;。
試しに「ピクチャ」フォルダをrobocopyでバックアップしてみます。
robocopy C:\Users\hogehoge\Pictures\ D:\Backup\Pictures\ /MIR /R:3 /W:3 /NP /NDL /LOG:D:\Backup\robocopy_Pictures.log
を実行して出力されたログファイルを見ると、以下のように、下段にある「合計」等の各列(赤文字にした部分)が読みにくいです。
------------------------------------------------------------------------------- ROBOCOPY :: Windows の堅牢性の高いファイル コピー ------------------------------------------------------------------------------- 開始: 2021年3月6日 6:29:42 コピー元 : C:\Users\hogehoge\Pictures\ コピー先 : D:\Backup\Pictures\ ファイル: *.* オプション: *.* /NDL /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /NP /R:3 /W:3 ------------------------------------------------------------------------------ *EXTRA File 14565 D:\Backup\Pictures\あとで削除.png ------------------------------------------------------------------------------ 合計 コピー済み スキップ 不一致 失敗 Extras ディレクトリ: 3 0 3 0 0 0 ファイル: 25 0 25 0 0 1 バイト: 2.09 m 0 2.09 m 0 0 14.2 k 時刻: 0:00:00 0:00:00 0:00:00 0:00:00 終了: 2021年3月6日 6:29:42
次の問題点
ネット情報によると、ログファイルを英語表記で出力すれば上述のズレが生じないそうです。やることはrobocopyを実行する前に、以下のコマンドを実行するだけです。
chcp 65001
これで、コマンドプロンプトで使用される文字コードが「UTF-8」になります。なお、65001はコードページと呼ばれるもので、以下のMicrosoftのページに記載されています。
https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers
chcp 65001 robocopy C:\Users\hogehoge\Pictures\ D:\Backup\Pictures\ /MIR /R:3 /W:3 /NP /NDL /LOG:D:\Backup\robocopy_Pictures.log
を実行して出力されたログファイルは以下のとおりです。
------------------------------------------------------------------------------- ROBOCOPY :: Robust File Copy for Windows ------------------------------------------------------------------------------- Started : 202136 6:28:19 Source : C:\Users\hogehoge\Pictures\ Dest : D:\Backup\Pictures\ Files : *.* Options : *.* /NDL /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /NP /R:3 /W:3 ------------------------------------------------------------------------------ *EXTRA File 14565 D:\Backup\Pictures\後ほど消す.png New File 14565 C:\Users\hogehoge\Pictures\あとで削除.png ------------------------------------------------------------------------------ Total Copied Skipped Mismatch FAILED Extras Dirs : 3 0 3 0 0 0 Files : 26 1 25 0 0 1 Bytes : 2.11 m 14.2 k 2.09 m 0 0 14.2 k Times : 0:00:00 0:00:00 0:00:00 0:00:00 Speed : 3641250 Bytes/sec. Speed : 208.353 MegaBytes/min. Ended : 202136 6:28:19
確かにズレは生じていません。しかし、日付の表記が分かりにくいですね。2021年3月6日が「202136」と表示されています。
解決策
/LOGオプションの代わりに/UNILOGオプションを使うと、日付の表記が「2021年3月6日」になりました。というわけで、以下の手順を踏むことにしました。
(1)robocopyを実行する前に「chcp 65001」を実行する。
(2) /LOG ではなく /UNILOG を使用する。
chcp 65001 robocopy C:\Users\hogehoge\Pictures\ D:\Backup\Pictures\ /MIR /R:3 /W:3 /NP /NDL /UNILOG:D:\Backup\robocopy_Pictures.log
を実行して出力されたログは以下のとおりです。ズレは解消され、かつ、日付の表記も分かりやすいです。
------------------------------------------------------------------------------- ROBOCOPY :: Robust File Copy for Windows ------------------------------------------------------------------------------- Started : 2021年3月6日 6:23:42 Source : C:\Users\hogehoge\Pictures\ Dest : D:\Backup\Pictures\ Files : *.* Options : *.* /NDL /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /NP /R:3 /W:3 ------------------------------------------------------------------------------ *EXTRA File 14565 D:\Backup\Pictures\あとで消す.png New File 14565 C:\Users\hogehoge\Pictures\後ほど消す.png ------------------------------------------------------------------------------ Total Copied Skipped Mismatch FAILED Extras Dirs : 3 0 3 0 0 0 Files : 26 1 25 0 0 1 Bytes : 2.11 m 14.2 k 2.09 m 0 0 14.2 k Times : 0:00:00 0:00:00 0:00:00 0:00:00 Speed : 14565000 Bytes/sec. Speed : 833.415 MegaBytes/min. Ended : 2021年3月6日 6:23:42