3
我有這樣的代碼:批處理文件:SET變量=字符串不起作用
if %Ret:~6,4% EQU %Year% (
SET test=text
ECHO %test%
) else (
ECHO NO
)
的代碼中,如果循環進入,但它總是返回回聲處於關閉狀態! 我注意=之前和之後的空格。 任何想法?
我有這樣的代碼:批處理文件:SET變量=字符串不起作用
if %Ret:~6,4% EQU %Year% (
SET test=text
ECHO %test%
) else (
ECHO NO
)
的代碼中,如果循環進入,但它總是返回回聲處於關閉狀態! 我注意=之前和之後的空格。 任何想法?
今年這類問題的數字#342。
在執行任何行之前解析塊時發生百分比擴展。
因此,echo %test%
在變量設置之前展開。
因此存在延遲擴展,當執行一條線時該延遲擴展。
setlocal EnableDelayedExpansion
if "%Ret:~6,4%" EQU "%Year%" (
SET test=text
ECHO !test!
) else (
ECHO NO
)
這裏不是問題。我試過你的解決方案,但它把測試,而不是文字 – Alice
是的,愛麗絲,這是問題和解決方案。也許你沒有像jeb的答案中那樣包含setlocal命令。 – foxidrive