批处理文件:SET variable = string不起作用

时间:2013-11-15 09:08:09

标签: batch-file

我有这段代码:

if %Ret:~6,4% EQU %Year% (
SET test=text
ECHO %test%
) else (
ECHO NO
)

代码进入if循环,但它总是返回Echo关闭! 我注意到=之前和之后的空间。 有什么想法吗?

1 个答案:

答案 0 :(得分:5)

今年此类问题的第342号。

在执行任何行之前解析块时会出现百分比扩展 因此,echo %test%在变量设置之前展开。

因此存在延迟扩展,当执行一行时会扩展。

setlocal EnableDelayedExpansion
if "%Ret:~6,4%" EQU "%Year%" (
  SET test=text
  ECHO !test!
) else (
  ECHO NO
)