为什么在if语句中内联操作字符串可以不使用延迟扩展变量,但在其他情况下会失败。例如:
set test=testString
if %test:~0,4%==test echo Success
这个工作是正确的,返回Success
。但是如果我执行以下操作:
setLocal enableDelayedExpansion
set test=testString
if !test:~0,4!==test echo Success
我收到了这个错误信息 - 4!==test was unexpected at this time.
很明显,你可以通过像 set comp=!test:~0,4!
这样的操作来避免这个错误,然后在if语句中使用 !comp!
变量。