我有这段代码:
if %Ret:~6,4% EQU %Year% (
SET test=text
ECHO %test%
) else (
ECHO NO
)
代码进入if循环,但它总是返回Echo关闭! 我注意到=之前和之后的空间。 有什么想法吗?
答案 0 :(得分:5)
今年此类问题的第342号。
在执行任何行之前解析块时会出现百分比扩展
因此,echo %test%
在变量设置之前展开。
因此存在延迟扩展,当执行一行时会扩展。
setlocal EnableDelayedExpansion
if "%Ret:~6,4%" EQU "%Year%" (
SET test=text
ECHO !test!
) else (
ECHO NO
)