首页 热点资讯 义务教育 高等教育 出国留学 考研考公

这个批处理for /r的ren为什么提示命令语法不正确

发布网友 发布时间: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是向下递归,也就是递归当前目录以及下层目录下的所有文件。没加参数则只递归当前目录文件,命令有所不同。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com