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

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

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

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

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

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

2021/04/28追記:メモ帳でも”名前をつけて保存”を選択することで文字コードを指定できるそうです。(情報提供:kentax様)

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

Robocopyのバッチファイルが文字化けして失敗する問題」への2件のフィードバック

  1. kentax

    テキストエディタを使用しなくても、Windows のメモ帳の「名前を付けて保存」機能により UTF-8 を ANSI(shift-JIS)に変換して保存する事が出来ます。
    また、「表示」機能で、「ステータスバー」を表示させれば、そのファイルの文字コードが最下行右端に表示されます。
    一度お試しください。

    返信
    1. heboDJ 投稿作成者

      情報ありがとうございます。
      この方法は知りませんでした。大変勉強になりました。

      返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

スパム対策のため、日本語が含まれないコメントは投稿できません。