日別アーカイブ: 2020年5月14日

Robocopyのバッチファイルが文字化けして失敗する問題

Robocopyのコピージョブをバッチファイル化して運用する時に、文字化けしてコピーが失敗する場合があります。ジョブを直接cmd.exeで実行した時には問題ないのにバッチファイルにするとうまくいかないという場合、テキストファイルの文字コードの問題である可能性が高いです。

これは”C:\ほげ”から”C:\ぴよ”にコピーをするジョブですが、このようにパスが文字化けしてコピーが失敗します。

Robocopyのジョブを作成する時にテキストエディタでジョブを書いて拡張子を変更してバッチファイル化することがありますが、Windows付属の”メモ帳”でテキストファイルを書くとデフォルトの文字コードがUTF-8で保存されます。

ところが、バッチ実行時の標準文字コードはShift-JISなので、そのままだとUTF-8のテキストをShift-JISで解釈することになってしまい2バイト文字で文字化けが発生するというわけです。

対策としてはメモ帳ではなく何らかのテキストエディタを使い、テキストファイル保存時に文字コードを明示的にShift-JISに設定してあげればOKです。

初歩的なミスだとは思いますが、普段自分が触っていない環境だとテキストエディタが入っていなかったりするのでこの手のトラブルが起きがちです。注意したいところです。