我正在尝试从字符串中获取子字符串并检查它是否等于“System”。我从%% a获取字符串。当我运行脚本时,我得到错误“意外(”。如果我删除for循环中的行(“set _varsub ...”)错误消失。所以我认为我的substring命令有一些语法错误。可以有谁告诉我?
for /f "tokens=1,3,4,* delims=: " %%a in ('e:\DeployTools\handle.exe %deploymentdir%\%%i ^| findstr /i pid: ') do @(
set _varsub=%%a
set _varsub=%_varsub:~0,6%
if not %_varsubstring%==System (
// do something
)
答案 0 :(得分:1)
尝试在if语句中添加引号
如果不是'%_varsubstring%'=='系统'(...
意外错误是因为_varsubstring在此时未定义,因此该行的计算结果为:
如果不是==系统(
答案 1 :(得分:1)
就像scottknight写的那样,你的代码会因为没有定义变量而失败,
但即便如此,它也会失败,因为括号内的扩展不适用于百分比
在您的情况下,您应该使用带有感叹号的延迟扩展。
set _varsub=%%a
set _varsub=!_varsub:~0,6!