我怀疑你不是在精确地报告你的代码的结果。如果按下了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! –