非常に複雑なディレクトリ構造に多数のファイルがあり、議論する価値がない理由で、拡張子が「.inp」のすべてのファイルの名前を「.TXT」拡張子に変更する必要があります。触れたくない他の拡張子のファイルが他にもたくさんあります。少なくとも5レベル下で再帰的にやりたいです。
これまでのところ:
for /d %%x in (*) do pushd %%x & Ren *.inp *.TXT & popd
...しかし、これはディレクトリの1レベルだけ下に行きます。
誰か助けてもらえますか?前もって感謝します!
for /r startdir %%i in (*.inp) do ECHO ren "%%i" "%%~ni.txt"
あなたのために働くはずです。 startdir
を開始ディレクトリ名に置き換えます。これが問題なく機能することを確認したら、echo
の前にあるren
を削除して、実際に名前を変更します。
ダウンボーターの場合:バッチファイルの実行は、コマンドプロンプトからの実行とは異なります。各%%x
ここで、x
はメタ変数(ループ制御変数)を%
に減らす必要があります。そう
for /r startdir %i in (*.inp) do ECHO ren "%i" "%~ni.txt"
これをプロンプトから実行すると機能するはずです。 echo
に関する注意をお読みください。
Windows 7では、次の1行のコマンドが機能し、*。js内のすべてのファイルの名前を* .jsに再帰的に変更します。
FOR /R %x IN (*.js) DO ren "%x" *.txt
ジョン・スミスの答えは素晴らしく、うまくいきます。しかし、完全に明確にするために(正しい構文を理解するためにmagooのメモを読み直さなければなりませんでした)、これがまさにあなたがする必要があることです...
BATCH FILE:
FOR /R %%x IN (*.js) DO ren "%%x" *.txt
COMMAND LINE:
FOR /R %x IN (*.js) DO ren "%x" *.txt
彼らの回答に賛成票を投じて、私は控えめなフォーマッターです...