- 締切済み
コマンドプロンプトによるファイル名一括変換
コマンドプロンプトで、サブディレクトリを含めたファイル名の一括変換 をしたいのですが、次のコマンドを叩いたら、「コマンドの構文が間違っています」と出てしまいました。どこがおかしいのでしょうか? カレントディレクトリの中の「*.txt」ファイルをすべて「*.doc」にしたい場合↓ for /r /d %i in (*) do ren %i\*.txt *.doc よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- driverII
- ベストアンサー率27% (248/913)
%% とするのはバッチファイルで % でコマンドラインです。 ren *.txt *.doc ではカレントディレクトリのファイルは変わっても、サブディレクトリのファイルは変わりません。 ですので両方実行ということですね。
- NINJA104
- ベストアンサー率43% (133/306)
#5です。 >コマンドラインから直接打ち込む場合は % を二重の %% とします。 >バッチファイルにした場合は % のみで適用です。 逆でした。大変失礼しました。
- NINJA104
- ベストアンサー率43% (133/306)
コマンドラインから直接打ち込む場合は % を二重の %% とします。 バッチファイルにした場合は % のみで適用です。 ちなみに目的の作業は先回答者様がアドバイスされている様に、 >ren *.txt *.doc でいけます。(但しNT以降に限る。2K,XP共に可能)
- driverII
- ベストアンサー率27% (248/913)
#2です。すいません、嘘を書いていました。 ren *.txt *.doc は可能ですね。 ren [ドライブ]:[ディレクトリ]\*.txt *.doc も可能でした。 そして質問の for /r /d %i in (*) do ren %i\*.txt *.doc も可能でした。ただしカレントディレクトリのファイルは変換できませんでした。 for /r /d %i in (*) do ren %i\*.txt %i\*.doc にすると、「コマンドの構文が間違っています」が出ましたが。 こちらでは現象が出ませんでしたので、打ち間違えなどはないでしょうか?
- takepyon777
- ベストアンサー率0% (0/0)
ただいまXPにて検証いたしました、OKです。
- driverII
- ベストアンサー率27% (248/913)
いや、無理でしょう。 ren は ren *.txt *.doc という構文は受け付けていないようです。 (Win2000の場合、XPは今、検証できませんので) バッチファイルを作って渡されたディレクトリの*.txt を *.doc に変更してやるしかないのでは・・・
- bardfish
- ベストアンサー率28% (5029/17766)
カレントディレクトリの.txtを.docにリネームするだけなら、 REN *.txt *.doc だけで出来ます。forはいりません。 連番を振りたいというなら別ですが…