我有这个代码:
if %Ret:~6,4% EQU %Year% (
SET test=text
ECHO %test%
) else (
ECHO NO
)
Run Code Online (Sandbox Code Playgroud)
代码进入if循环,但它总是返回Echo关闭!我注意到=之前和之后的空间.有任何想法吗?
今年此类问题的第#342个.
在解析块之前,在执行任何行之前,会出现百分比扩展.
所以在echo %test%
设置变量之前扩展.
因此存在延迟扩展,其在执行线时扩展.
setlocal EnableDelayedExpansion
if "%Ret:~6,4%" EQU "%Year%" (
SET test=text
ECHO !test!
) else (
ECHO NO
)
Run Code Online (Sandbox Code Playgroud)