
批處理啟用變量延遲時Set與echo同行會出現意外結果問題描述:啟用變量延遲,用&將Set命令與echo命令合并為一行,出現意外結果。初學,測試很久不得其解。請各位前輩指點迷津,先行拜謝。執行出錯代碼如下:
只要不啟用變量延遲,或者啟用時把Set命令與echo命令分行寫,執行就沒有問題。如以下3個測試:測試2:啟用變量延遲,命令分行寫:nclick="copycode($('code0'));">復制代碼
- echo 測試1_結果錯誤:數值大于100。
- setlocal enabledelayedexpansion
- set s=100 & echo !s!
- if !s! EQU 100 (echo 數值等于100)
- if !s! gtr 100 (echo 數值大于100) && echo !s!
- pause
測試3:不啟用變量延遲,命令合并寫:nclick="copycode($('code1'));">復制代碼
- echo 測試2_結果正確:數值等于100
- setlocal enabledelayedexpansion
- set s=100
- echo !s!
- if !s! EQU 100 (echo 數值等于100)
- if !s! gtr 100 (echo 數值大于100)
- pause
測試4:不啟用變量延遲,命令分行寫:nclick="copycode($('code2'));">復制代碼
- echo 測試3_正確:數值等于100
- set s=100 & echo %s%
- if %s% EQU 100 (echo 數值等于100)
- if %s% gtr 100 (echo 數值大于100)
- pause
nclick="copycode($('code3'));">復制代碼
- echo 測試4_正確:數值等于100
- set s=100
- echo %s%
- if %s% EQU 100 (echo 數值等于100)
- if %s% gtr 100 (echo 數值大于100)
- pause

