首先,我将解释一下情景:
在PATH环境变量已损坏/空(未指定目录)的计算机中,我需要运行批处理脚本来修复并将某些设置返回到默认值,然后显然脚本需要在控制台环境中工作,即使是PATH为空,所以我需要为每个com / exe文件指定绝对路径。
那么,理解我上面所说的,为什么FOR中的表达式不起作用并抛出语法错误?
For /F "tokens=*" %%# in (
'"%SystemRoot%\System32\WBEM\WMIC.exe" useraccount where name^=^'%UserName%^' Get SID ^| "%SystemRoot%\System32\FINDSTR.exe" "[0-9]-[0-9]"'
) Do (
Echo %%#
)
如果我删除FINDSTR
命令的绝对路径,它会正常工作。
答案 0 :(得分:1)
问题是引号
For /F "tokens=*" %%# in (
'""%SystemRoot%\System32\WBEM\WMIC.exe" useraccount where name^=^'%UserName%^' Get SID | "%SystemRoot%\System32\FINDSTR.exe" "[0-9]-[0-9]""'
) Do (
Echo %%#
)
我遇到了同样的问题,here是解决方案,也是问题出现的原因。