我的腳本(a.bat):集不一樣,如果蝙蝠腳本+工作中,即使設置ENABLEDELAYEDEXPANSION
SETLOCAL ENABLEDELAYEDEXPANSION
if "%1"=="on" (
FOR /F "tokens=1" %%a in ('netsh interface show interface ^| findstr Local') DO (set lanst=%%a)
set lanst=%lanst: =%
echo Local Area Connection: %lanst%
FOR /F "delims=: tokens=2" %%b in ('netsh wlan show interface ^| findstr SSID ^| findstr /v B') DO (set curwifi=%%b)
set curwifi=%curwifi: =%
echo Current Wifi: %curwifi%
)
但是當我刪除if語句,腳本是:
SETLOCAL ENABLEDELAYEDEXPANSION
echo %1
FOR /F "tokens=1" %%a in ('netsh interface show interface ^| findstr Local') DO (set lanst=%%a)
set lanst=%lanst: =%
echo Local Area Connection: %lanst%
FOR /F "delims=: tokens=2" %%b in ('netsh wlan show interface ^| findstr SSID ^| findstr /v B') DO (set curwifi=%%b)
set curwifi=%curwifi: =%
echo Current Wifi: %curwifi%
根據輸出,我發現,在if + for的情況下,do()中的語句似乎不會執行。 這是爲什麼,以及如何解決?
感謝先進!
延遲擴展是必要的情況下一個變量被修改,並且在代碼parenthesised塊閱讀更多相關資訊; 'if'語句構造了這樣一個塊,所以你需要使用'!lanst!'而不是'%lanst%'。 – aschipfl
正確!謝謝! – Marslo