bat: 再帰的にファイル名を変更する

bat: 再帰的にファイル名を変更する

特定のパーティション内のすべての *.doc ファイルの名前を *.txt に再帰的に変更したいと思います。次の操作を試しましたが、成功しませんでした...

@echo off
echo +-------------------------------------------+
echo :         exec cmd in every subdir          :
echo +-------------------------------------------+

FOR /R ".\" %%F IN (.) DO (
    ren "*.doc" "*.txt"
)

@pause

何が間違っているのでしょうか?


更新: これは私にとってはうまくいきました... 私は MS ファイル エクスプローラー (Win7) でファイルをクリックしてこれを実行しており、.bat を実行可能ファイルとして設定しています。cmd プロンプトでは試していませんが、これによって違いが生じるかどうか疑問に思います。

@echo off

FOR /R ".\" %%F IN (.) DO (
 ren "%%F\*.doc" "*.txt"
)
@pause

答え1

バッチ ファイルにいくつかの小さなエラーがあります。

コマンドラインから動作するバージョンは次のとおりです。

FOR /R "." %F IN (.) DO ren "%F\*.doc" "*.txt"

ファイルでは次のようになります.bat:

FOR /R "." %%F IN (.) DO ren "%%F\*.doc" "*.txt"

Windows 7 64 ビットでテスト済み:

ここに画像の説明を入力してください

関連情報