
批處理延遲環境變量擴容和直接變量擴容有什么區別剛開始接觸批處理,在看set命令幫助文件中發現一個問題,請教一個延遲環境變量擴容和直接變量擴容的區別:在幫助文件中,有以下一段代碼:
按我的理解,程序執行的時候都是按照代碼中的次序依次執行的,最后的結果應該是輸出If you see this, it worked”但是幫助文件中給出的解釋是:不會顯示消息,因為在讀到第一個 IF 語句時,BOTH IF 語句中的 %VAR% 會被代替;原因是: 它包含 IF 的文體,IF 是一個復合語句。所以,復合語句中的 IF 實際上是在比較 before 和after,這兩者永遠不會相等。有朋友給詳細介紹下為什么嗎?謝謝nclick="copycode($('code0'));">復制代碼
- set VAR=before
- if %VAR% == before (
- set VAR=after
- if %VAR% == after @echo If you see this, it worked
- )

