- ベストアンサー
nkfのバッチファイル
親ディレクトリ以下のすべてのテキストファイルの文字コードをutf-8に変えようと思い、以下の内容のバッチファイルを作りました(nkf32.exeはバッチファイルと同ディレクトリに置いています)。Cドライブ(デスクトップ)上で実行したところ、問題なく動いたのですが、USBメモリ(Dドライブ)に置いて実行するとうまく動きません。ご教示お願いします。 >test.bat for /R .. %%i in (*.txt) do ( nkf32.exe -w8 --overwrite %%i )
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ディレクトリ名の空白が原因なら for /R .. %%i in (*.txt) do ( nkf32.exe -w8 --overwrite "%%i" ) とすればいかがでしょうか。
その他の回答 (2)
- kteds
- ベストアンサー率42% (1882/4440)
スクリプトは問題ない、と思います。 > ・・・うまく動きません。 悩ましい表現で、わかりにくいのですが、これはどういう状態(動作)を言っているのでしょうか。 エラーは表示されないのでしょうか? test.bat右クリック ->「管理者として実行」では「書き込みできた」ということはありませんか。 --- test.batでの実行ではなくて、1件だけファイル指定してコマンドラインで実行するとOKなのですか?
お礼
ありがとうございます。検証方法に誤りがあったことが判明しました。どうやら親ディレクトリ名に半角空白が入っていたことが原因ではないかと思います。 ディレクトリ名の半角空白を消すのが最もよいとは思いますが、ディレクトリ名の半角空白を維持したい場合、どう書き換えればよいでしょうか。
補足
下の通りですが、ディレクトリ名の半角空白を再帰的に置換するバッチを作ることができればそれもしたいと思いますので、ヒントがあればお教え下さい。
- A88No8
- ベストアンサー率52% (836/1606)
こんにちは >Cドライブ(デスクトップ)上で実行したところ、問題なく動いたのですが、USBメモリ(Dドライブ)に置いて実行するとうまく動きません。 batの頭に 「D:」、おしりに「C:」のおまじないを入れたらどうでしょう(^^; D:ドライブ上で実行したつもりのbatが、C:ドライブ上の環境で実行されているような気がします(^^;
お礼
ありがとうございます。私の検証方法に誤りがあったことが判明しました。どうやら親ディレクトリ名に半角空白が入っていたことが原因ではないかと思います。
お礼
ありがとうございます。うまく変換することができました。 "" で囲むのは、%%i のところだったのですね。
補足
みなさま、ありがとうございました。 ディレクトリ名の置換については、リネームソフトを使えばよいことを忘れていました。 全て解決しました。また疑問が出てきたときにはよろしくお願いします。