こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

nkfのバッチファイル

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

>test.bat

for /R .. %%i in (*.txt) do (
nkf32.exe -w8 --overwrite %%i
)

投稿日時 - 2013-10-05 23:40:31

QNo.8293491

困ってます

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

ディレクトリ名の空白が原因なら

for /R .. %%i in (*.txt) do (
nkf32.exe -w8 --overwrite "%%i"
)

とすればいかがでしょうか。

投稿日時 - 2013-10-06 09:38:20

補足

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

投稿日時 - 2013-10-06 11:51:37

お礼

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

投稿日時 - 2013-10-06 10:11:52

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

スクリプトは問題ない、と思います。

> ・・・うまく動きません。

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

投稿日時 - 2013-10-06 08:16:08

補足

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

投稿日時 - 2013-10-06 09:36:27

お礼

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

投稿日時 - 2013-10-06 09:27:17

ANo.1

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

投稿日時 - 2013-10-06 07:49:59

お礼

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

投稿日時 - 2013-10-06 09:24:55

あなたにオススメの質問