コードの結果を正確に報告していないのではないかと思います。投稿したコードは、Pが押された場合は印刷し、Tが押された場合はPINGLOOPのみを印刷する必要があります。ヘルプで説明されているように、この動作はIFERRORLEVELステートメントの動作によるものです。コマンドのヘルプを表示するには、単に入力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