解決済み

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

  • すぐに回答を!
  • 質問No.3201814
  • 閲覧数4558
  • ありがとう数1
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 38% (62/159)

ある日本語で書かれたファイルの名称をバッチファイルで変更しようとしています。
rena.bat (以下中身) -------------
rename "ごろ猫のサンバ.txt" "test.txt"
---------------------------------
実行すると「The system cannot find the file specified. 」の表示です。

しかし、MS-DOSプロンプトのコマンドラインから直接
> rename "ごろ猫のサンバ.txt" "test.txt"
を打ち込むと正常に動いてくれます。

目的はリネームをしようという事ではなく、バッチファイル中の日本語を含むファイル名(+パス)の取扱いができないことで派生して色々検証した結果、取り扱えないという状況で質問している次第です。

何か勘違いしているのでしょうか。バッチファイル中で日本語ファイルを取り扱うにはどうしたらいいのでしょうか?ご存知の方、ご教授ください。

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

  • 回答No.3

ベストアンサー率 51% (77/150)

> 「現在のコード ページ: 932」と出て
ということはコマンドプロンプトの話でしょうかね。

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

その他の回答 (全2件)

  • 回答No.2
ANo.1 です。あまり詳しくないのにすみません。

Windows のDOS プロンプトは少し使ったことがありますが、
マルチタスク?故なのかBATchファイルの記述順どおりに
「起動完了を待つ」ことはしてくれない印象があります。

windows98あたりでは DOS ベースでしたので気にしてませんでしたが、
NT か W2k あたりから DOS プロンプトは「シミュレーション」に
なったとか...

つまり本件では、
JP
を完了する前に次の
rename
を実行し始めてるのだろう、と思います。
途中で時間のかかりそうな処理を入れるとか、
キー入力待ち...pause とか wait とかありませんでしたっけ...

挿入すると解決するかも。
  • 回答No.1
Windows XP Pro SP2 ですが、
質問者さんと同じバッチを作ったら、
ちゃんとリネームできましたよ。

BAT を動かすと、たしか子プロセスでcommand.com を使うので、
そっちの環境が日本語を使えるようになってないのかも知れません。
BAT ファイル中で日本語環境を生かす
JP
を入れてみたらどうでしょ?
補足コメント
goroneko-begin

お礼率 38% (62/159)

ありがとうございます。
rena.batの中身を
------------------
JP
rename "ごろ猫のサンバ.txt" "test.txt"
------------------
とすると
「現在のコード ページ: 932」と出てrenameが実行されません。

もう一度、rena.batの中身を
------------------
rename "ごろ猫のサンバ.txt" "test.txt"
------------------
だけにして実行してみると(JP実行後)、うまく動きました。

どうやらJPを動かした後に実行しなければいけないみたいですね。
ですが、JP実行後、そのまま次のコマンドを動かすにはどのようにbatファイルを書けばいいのでしょうか?一番上で記載しているbatファイルではJP実行後に終わっているようです。

ご存知であれば教えてください。よろしくお願いします。
投稿日時 - 2007-07-26 20:20:59
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ