• 締切済み

コマンドプロンプトによるファイル名一括変換

コマンドプロンプトで、サブディレクトリを含めたファイル名の一括変換 をしたいのですが、次のコマンドを叩いたら、「コマンドの構文が間違っています」と出てしまいました。どこがおかしいのでしょうか? カレントディレクトリの中の「*.txt」ファイルをすべて「*.doc」にしたい場合↓ for /r /d %i in (*) do ren %i\*.txt *.doc よろしくお願いします。

みんなの回答

  • driverII
  • ベストアンサー率27% (248/913)
回答No.7

%% とするのはバッチファイルで % でコマンドラインです。 ren *.txt *.doc ではカレントディレクトリのファイルは変わっても、サブディレクトリのファイルは変わりません。 ですので両方実行ということですね。

  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.6

#5です。 >コマンドラインから直接打ち込む場合は % を二重の %% とします。 >バッチファイルにした場合は % のみで適用です。 逆でした。大変失礼しました。

  • NINJA104
  • ベストアンサー率43% (133/306)
回答No.5

コマンドラインから直接打ち込む場合は % を二重の %% とします。 バッチファイルにした場合は % のみで適用です。 ちなみに目的の作業は先回答者様がアドバイスされている様に、 >ren *.txt *.doc でいけます。(但しNT以降に限る。2K,XP共に可能)

  • driverII
  • ベストアンサー率27% (248/913)
回答No.4

#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 にすると、「コマンドの構文が間違っています」が出ましたが。 こちらでは現象が出ませんでしたので、打ち間違えなどはないでしょうか?

回答No.3

ただいまXPにて検証いたしました、OKです。

  • driverII
  • ベストアンサー率27% (248/913)
回答No.2

いや、無理でしょう。 ren は ren *.txt *.doc という構文は受け付けていないようです。 (Win2000の場合、XPは今、検証できませんので) バッチファイルを作って渡されたディレクトリの*.txt を *.doc に変更してやるしかないのでは・・・

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.1

カレントディレクトリの.txtを.docにリネームするだけなら、 REN *.txt *.doc だけで出来ます。forはいりません。 連番を振りたいというなら別ですが…

関連するQ&A