プロが教えるわが家の防犯対策術!

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

for /r /d %i in (*) do ren %i\*.txt *.doc

よろしくお願いします。

A 回答 (7件)

%% とするのはバッチファイルで


% でコマンドラインです。

ren *.txt *.doc
ではカレントディレクトリのファイルは変わっても、サブディレクトリのファイルは変わりません。

ですので両方実行ということですね。
    • good
    • 0

#5です。


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

逆でした。大変失礼しました。
    • good
    • 0

コマンドラインから直接打ち込む場合は % を二重の %% とします。


バッチファイルにした場合は % のみで適用です。

ちなみに目的の作業は先回答者様がアドバイスされている様に、
>ren *.txt *.doc
でいけます。(但しNT以降に限る。2K,XP共に可能)
    • good
    • 0

#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
にすると、「コマンドの構文が間違っています」が出ましたが。

こちらでは現象が出ませんでしたので、打ち間違えなどはないでしょうか?
    • good
    • 0

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

    • good
    • 0

いや、無理でしょう。


ren は ren *.txt *.doc という構文は受け付けていないようです。
(Win2000の場合、XPは今、検証できませんので)

バッチファイルを作って渡されたディレクトリの*.txt を *.doc
に変更してやるしかないのでは・・・
    • good
    • 0

カレントディレクトリの.txtを.docにリネームするだけなら、


REN *.txt *.doc
だけで出来ます。forはいりません。

連番を振りたいというなら別ですが…
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!