• ベストアンサー

nkfのバッチファイル

親ディレクトリ以下のすべてのテキストファイルの文字コードをutf-8に変えようと思い、以下の内容のバッチファイルを作りました(nkf32.exeはバッチファイルと同ディレクトリに置いています)。Cドライブ(デスクトップ)上で実行したところ、問題なく動いたのですが、USBメモリ(Dドライブ)に置いて実行するとうまく動きません。ご教示お願いします。 >test.bat for /R .. %%i in (*.txt) do ( nkf32.exe -w8 --overwrite %%i )

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

  • ベストアンサー
  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.3

ディレクトリ名の空白が原因なら for /R .. %%i in (*.txt) do ( nkf32.exe -w8 --overwrite "%%i" ) とすればいかがでしょうか。

cat-rice
質問者

お礼

ありがとうございます。うまく変換することができました。 "" で囲むのは、%%i のところだったのですね。

cat-rice
質問者

補足

みなさま、ありがとうございました。 ディレクトリ名の置換については、リネームソフトを使えばよいことを忘れていました。 全て解決しました。また疑問が出てきたときにはよろしくお願いします。

その他の回答 (2)

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.2

スクリプトは問題ない、と思います。 > ・・・うまく動きません。 悩ましい表現で、わかりにくいのですが、これはどういう状態(動作)を言っているのでしょうか。 エラーは表示されないのでしょうか? test.bat右クリック ->「管理者として実行」では「書き込みできた」ということはありませんか。 --- test.batでの実行ではなくて、1件だけファイル指定してコマンドラインで実行するとOKなのですか?

cat-rice
質問者

お礼

ありがとうございます。検証方法に誤りがあったことが判明しました。どうやら親ディレクトリ名に半角空白が入っていたことが原因ではないかと思います。 ディレクトリ名の半角空白を消すのが最もよいとは思いますが、ディレクトリ名の半角空白を維持したい場合、どう書き換えればよいでしょうか。

cat-rice
質問者

補足

下の通りですが、ディレクトリ名の半角空白を再帰的に置換するバッチを作ることができればそれもしたいと思いますので、ヒントがあればお教え下さい。

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.1

こんにちは >Cドライブ(デスクトップ)上で実行したところ、問題なく動いたのですが、USBメモリ(Dドライブ)に置いて実行するとうまく動きません。  batの頭に 「D:」、おしりに「C:」のおまじないを入れたらどうでしょう(^^;  D:ドライブ上で実行したつもりのbatが、C:ドライブ上の環境で実行されているような気がします(^^;

cat-rice
質問者

お礼

ありがとうございます。私の検証方法に誤りがあったことが判明しました。どうやら親ディレクトリ名に半角空白が入っていたことが原因ではないかと思います。

関連するQ&A