這是一個Windows cmd.exe問題。試圖設置一個變量,然後使用& &在一個命令行中包含引用該變量的另一個命令不起作用。直到下一行被處理,該變量才被設置。Windows批處理:set && echo不起作用
重現步驟:
set X=1 && echo %X%
%X%
echo %X%
1
set X=2 && echo %X%
1
echo %X%
2
有沒有一種方法,使這項工作如預期?
這是一個Windows cmd.exe問題。試圖設置一個變量,然後使用& &在一個命令行中包含引用該變量的另一個命令不起作用。直到下一行被處理,該變量才被設置。Windows批處理:set && echo不起作用
重現步驟:
set X=1 && echo %X%
%X%
echo %X%
1
set X=2 && echo %X%
1
echo %X%
2
有沒有一種方法,使這項工作如預期?
做的第一行:setlocal enabledelayedexpansion
然後
set X=I_AM_ECHOED && echo !X!
echo !X!
將打印
I_AM_ECHOED
I_AM_ECHOED
嗯,不是命令行,而不是批處理文件。很不一樣。 –
setlocal enabledelayedexpansion && set X = FOO && echo!Z!結果:!Z! –
無需任何兩個連詞符號。可以爲其中的一種情況,但我仍然會說echo命令應該放在下一行。 – Compo
如果「這是Windows批處理文件問題」,爲什麼您的示例是從命令行獲取的?第一行在批處理文件_中顯示不同的輸出。你可以使用:'set X = 1 && call echo %% X %%'See [this answer](https://stackoverflow.com/questions/9970348/how-to-realize-an-assignment-within-the- if-block/9970460#9970460) – Aacini