n-Archives.net

Robocopyを英語表示にしてログ表示の桁ずれをなくす

目次

Robocopyの日本語表示はとても読みにくい

Robocopyの日本語表示ははっきり言ってめちゃめちゃ汚いです。以下のような感じです。表示位置がずれまくっているし、日本語も直感的に理解しづらいし、これでは、実行結果がどうであったのか読み取ることはできないです。

英語での表示にしてみると以下のような感じです。

縦がそろっていて非常に読みやすいです。一番下のマトリクスも読みやすく、もともとRobocopyは意外とちゃんと作っていたんだな、と思わされます。英語のままでもほぼ分かるのに、これほどわかりづらくなるのを知りながら、あえて日本語にしてしまうというのは全く理解に苦しみます。

普段Robocopyを使う時にも何とか英語表記で使えないものでしょうか。今回は英語表記でRobocopyを使う方法についてご紹介したいと思います。

 

コマンドプロンプトでRobocopyを英語表示にする

コマンドプロンプト画面でRobocopyを使用する場合、コードページを UTF8 に設定しておくことで、Robocopyに英語表示させることができます。(ASCIIでも英語表示にはなるのですが、日本語も使うのでここはUTF8にします。)

コードページとは、使用する文字コード体系のことを指します。英語やほとんどのヨーロッパ言語で使われているコード ページは ANSI (1252)、日本語向けのコード ページはshift_jis (932) が使われています。

 

コマンドプロンプト画面で、コードページを変更する場合、chcp (change code page)コマンドを使用します。これを使ってコードページを UTF8 (65001) にします。

chcp コマンドで、現在のデフォルトのコードページが 932 であることが確認できます。

"chcp 65001" を実行すると、

画面が一度クリアされて 65001 に切り替わります。

その状態でRobocopyを実行すると

惜しい! ファイル名が文字化けしています。いろいろ解析してみると、コードページがUTF8になっているのに、ファイル名は生のまま shift_jisで出力しているため、文字化けしてしまっているようです。日付の"年月日"はUTF8になっているようで、ちゃんと表示されています。

 

ファイル名もちゃんと表示させる方法はないでしょうか。これについて、いろいろとかなり苦労して調べてみたところ、結論として、「/UNILOG:NUL /TEE」 というオプションを付けてみてください。以下の通り、ファイル名もUTF8になり完璧に英語表示になります。

なぜ、 「/UNILOG:NUL /TEE」なのかについては、話がかなり長くなりますので、別記事をご覧ください。

記事:Robocopyのログ出力の文字コードについて調べてみた (2020/2/11)

 

まとめると、コマンドプロンプト画面でrobocopy を完全な形で英語表示にする方法は以下の通りです。

  • chcp 65001 でコードページをUTF8にする。
  • robocopy コマンドに /UNILOG:NUL /TEE オプションを付ける。

 

しかし実際には、そこまでしてrobocopy 英語表記にしたいと思う人はいないかもしれませんね。

 

RoboSyncでRobocopyを英語表示にする

さて、それでは、RoboSync で、robocopyを英語表示にする方法をご紹介します。

 

コピー項目実行時に英語表示にする設定

RoboSync version 1.2.41 で、コピー項目の実行時に自動的にコードページをUTF8に設定し、Robocopyの表示を英語化できるようになりました。RoboSync設定画面で、「コピー項目実行時にコードページをUTF-8に設定しRobocopyを英語表示にする」にチェックを入れます。こうすることで、コピー項目の実行時にRobocopyの表示が英語化されます。(スクリプト実行時には英語化されません。)

 

この機能は、文字コードのエンコーダーに手を入れたり、Robocopyの出力を少し加工するようにしたりしてできており、ほぼ自然な形で英語化表示ができていると思います。できれば、この機能は有効にしておくことをお勧めします。是非お試しください。

 

 

コピー項目単位に設定する方法

上記の設定は、全てのコピー項目の実行時に英語化する設定でしたが、個別のコピー項目ごとに英語化の設定をする場合は、実行前スクリプトにコードページ変更コマンド "chcp 65001" を記述すればOKです。

ただし、このコピー項目が含まれるスクリプトを実行した時に、このコピー項目以降、コードページがUTF8のままになってしまうので、注意が必要です。

実行後スクリプトにコードページを戻すコマンド "chcp 932" を記入しておいたほうが良いかもしれません。

 

 

 



【関連記事・関連コンテンツ】

 

コメントをお送りください
お名前:
コメント:
コメントの公開: