為什麼set指令不影響緊跟在&/&&後面的指令?

為什麼set指令不影響緊跟在&/&&後面的指令?

我有一堆使用系統變數的命令,它們是一行命令,如下所示:

set test="blah" && echo %test%

但是,我注意到 set 命令的變數沒有為同一行上的命令「設定」。如果我重新運行第二個命令,它將能夠讀取更新後的變數。我可以使用 & 或 && ,效果是相同的。無論是批次檔還是簡單地將其放入命令提示字元中,都會出現此行為。

如何獲得set影響&or之後的語句的指令&&

答案1

這是因為整個命令列是立即計算的,因此變數test在運行set命令之前就已解析。

一個簡單的解決方法是將命令放在批次檔中的單獨行上並運行它。

相關內容