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" を記入しておいたほうが良いかもしれません。

 

 

 



Related Articles

 

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



管理者より個人的に返信をご希望の方は、コメント中に必ずメールアドレスを記載してください。記載がないと返信できませんのでご注意ください。

If you want personal response from the author, please do not forget to write your email address in the comment. Otherwise, the author can not reply.

投稿されたコメントは手動で処理されるため、記事として登録されるまで1日程度かかります。

Submitted comments will be processed manually. So, please understand it will take about a day to publish your comment.