• ベストアンサー

MS-DOSのバッチファイルの中で日本語ファイルを取り扱うには

ある日本語で書かれたファイルの名称をバッチファイルで変更しようとしています。 rena.bat (以下中身) ------------- rename "ごろ猫のサンバ.txt" "test.txt" --------------------------------- 実行すると「The system cannot find the file specified. 」の表示です。 しかし、MS-DOSプロンプトのコマンドラインから直接 > rename "ごろ猫のサンバ.txt" "test.txt" を打ち込むと正常に動いてくれます。 目的はリネームをしようという事ではなく、バッチファイル中の日本語を含むファイル名(+パス)の取扱いができないことで派生して色々検証した結果、取り扱えないという状況で質問している次第です。 何か勘違いしているのでしょうか。バッチファイル中で日本語ファイルを取り扱うにはどうしたらいいのでしょうか?ご存知の方、ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • isle
  • ベストアンサー率51% (77/150)
回答No.3

> 「現在のコード ページ: 932」と出て ということはコマンドプロンプトの話でしょうかね。 XPの場合ですが、 コマンドプロンプトのウィンドウのアイコンの上で右クリックすると表示されるメニューから『規定値』を選択すると現われるダイアログで オプションタブの規定のコードページを932にすれば最初から日本語モードでコマンドプロンプトが起動するようになりますけど。

その他の回答 (2)

noname#65902
noname#65902
回答No.2

ANo.1 です。あまり詳しくないのにすみません。 Windows のDOS プロンプトは少し使ったことがありますが、 マルチタスク?故なのかBATchファイルの記述順どおりに 「起動完了を待つ」ことはしてくれない印象があります。 windows98あたりでは DOS ベースでしたので気にしてませんでしたが、 NT か W2k あたりから DOS プロンプトは「シミュレーション」に なったとか... つまり本件では、 JP を完了する前に次の rename を実行し始めてるのだろう、と思います。 途中で時間のかかりそうな処理を入れるとか、 キー入力待ち...pause とか wait とかありませんでしたっけ... を 挿入すると解決するかも。

noname#65902
noname#65902
回答No.1

Windows XP Pro SP2 ですが、 質問者さんと同じバッチを作ったら、 ちゃんとリネームできましたよ。 BAT を動かすと、たしか子プロセスでcommand.com を使うので、 そっちの環境が日本語を使えるようになってないのかも知れません。 BAT ファイル中で日本語環境を生かす JP を入れてみたらどうでしょ?

goroneko-begin
質問者

補足

ありがとうございます。 rena.batの中身を ------------------ JP rename "ごろ猫のサンバ.txt" "test.txt" ------------------ とすると 「現在のコード ページ: 932」と出てrenameが実行されません。 もう一度、rena.batの中身を ------------------ rename "ごろ猫のサンバ.txt" "test.txt" ------------------ だけにして実行してみると(JP実行後)、うまく動きました。 どうやらJPを動かした後に実行しなければいけないみたいですね。 ですが、JP実行後、そのまま次のコマンドを動かすにはどのようにbatファイルを書けばいいのでしょうか?一番上で記載しているbatファイルではJP実行後に終わっているようです。 ご存知であれば教えてください。よろしくお願いします。

関連するQ&A