含for循环的批处理文件执行报错求助
含for循环的批处理文件执行报错求助
哈喽各位,我这段带for循环的批处理脚本执行的时候一直报错,有没有大佬能帮忙看看问题出在哪呀?
先把我用的脚本贴出来:
for /f "tokens=*" %G in ('dir /b /s /a:d "C:\SER DATA\*Software*"') do ( echo Found %G icacls "%G" /remove "SER.LOCAL\Admins":F /Q /C /T )
几个可能的排查方向:
- For循环变量符号错误:如果这段代码是存成
.bat或.cmd文件运行的,那得把%G改成%%G哦!命令行直接运行时用单百分号,但批处理文件里必须用双百分号,这是很容易踩的坑~ - 缺少管理员权限:
icacls是用来修改权限的命令,必须以管理员身份运行才行。右键点击批处理文件,选择“以管理员身份运行”试试。 - 用户组名称有误:确认一下
SER.LOCAL\Admins这个组名是不是完全正确,有没有拼写错误?比如会不会是SER.LOCAL\Administrators? - 路径特殊字符问题:虽然脚本里已经给带空格的路径
C:\SER DATA加了引号,但还是要注意匹配到的子文件夹里有没有&、!这类特殊字符,可能会导致命令解析失败。可以先找一个确定的测试文件夹单独运行icacls命令试试。 - ICACLS命令参数问题:把icacls的命令单独拿出来,比如
icacls "某个测试文件夹路径" /remove "SER.LOCAL\Admins":F /Q /C /T,看看单独执行会不会报错,这样能区分是循环的问题还是权限命令本身的问题。
如果能提供具体的错误提示内容,排查起来会更精准哦!
备注:内容来源于stack exchange,提问作者cacava
相关产品推荐
相关产品推荐

