我懷疑你不是在精確地報告你的代碼的結果。如果按下了P,則已經發布的代碼應該同時打印,並且只有在按下T時纔打印PINGLOOP。行爲是由於IF ERRORLEVEL語句的工作方式所致,正如幫助中所解釋的。要獲得任何命令的幫助,只需從命令提示符輸入HELP commandName
或commandName /?
即可。在你的情況,你可以使用IF /?
看到下面
Performs conditional processing in batch programs.
IF [NOT] ERRORLEVEL number command
...
ERRORLEVEL number Specifies a true condition if the last program run
returned an exit code equal to or greater than the number
specified.
...
你有2種選擇,使你的代碼工作:
測試按照遞減數值順序和使用條件的ELSE子句
CHOICE /C:PT /N /M "Ping permanently (P) or temporarily (T) (%pingTimes% times)?"
echo %ERRORLEVEL%
IF ERRORLEVEL 2 (
ECHO PINGLOOP
) ELSE IF ERRORLEVEL 1 (
ECHO PERMPING
)
或使用IF %ERRORLEVEL%==N
CHOICE /C:PT /N /M "Ping permanently (P) or temporarily (T) (%pingTimes% times)?"
echo %ERRORLEVEL%
IF %ERRORLEVEL% == 1 ECHO PERMPING
IF %ERRORLEVEL% == 2 ECHO PINGLOOP
我簡單的錯誤了我的腦海裏可憐猛然一驚!感謝修復,dbenham! –