我有很多文件在一个非常复杂的目录结构,由于不值得讨论的原因,我需要重命名所有具有“.inp”扩展名的文件,以“.TXT”扩展名。 有很多其他扩展名的文件,我不想被触及,我想recursion地至less5级。
到目前为止我有:
for /d %%x in (*) do pushd %%x & Ren *.inp *.TXT & popd
…但是这仅仅是一个层次的目录。
谁能帮忙? 提前致谢!
for /r startdir %%i in (*.inp) do ECHO ren "%%i" "%%~ni.txt"
应该为你工作。 将startdir
替换为您的起始目录名称,当您检查完此作品以便您满意时,请在ren
之前删除echo
以实际执行重命名。
对于downvoters来说:执行一个批处理文件不同于从命令行提示符,因为每个%%x
其中x
是元变量(循环控制变量)需要被减少到%
,所以
for /r startdir %i in (*.inp) do ECHO ren "%i" "%~ni.txt"
如果您从提示符执行此操作应该工作。 请阅读关于echo
的说明。
在Windows 7中,下面的一行命令适用于我,将* .js中的所有文件递归地重命名为* .txt:
FOR /R %x IN (*.js) DO ren "%x" *.txt