发布网友 发布时间:2022-04-25 12:47
共2个回答
热心网友 时间:2024-03-21 13:00
无意中搜到了这么多年前的问题..
我的解决方法是这样的:
@Echo Off&SetLocal ENABLEDELAYEDEXPANSION
FOR /r %%a in (*) do (
cd %cd%
set "name=%%~nxa"
set "name=!name: (=!"
set "name=!name:)=!"
ren "%%a" "!name!"
)
pause
exit
虽然不懂批处理, 不过推测是因为遍历过程中 ren 的路径不明确造成的。
所以一方面参照楼上的方法,把name=%%a 改成 name=%%~nxa
另一方面,又加了一行 :
cd %cd%
把遍历到的当前路径重申一下就可以了。
热心网友 时间:2024-03-21 13:01
试试这个:
set name=%%~nxa
set name=!name:(=!
set name=!name:)=!
ren "%%a" "!name!"
应该是ren的语法出了问题,形式:
ren "path\filename.extension" "newfilename.extension"
参数/r是向下递归,也就是递归当前目录以及下层目录下的所有文件。没加参数则只递归当前目录文件,命令有所不同。