Windows партия, если выбрано неправильное значение - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь использовать команду CHOICE в небольшом тестовом командном файле. Вот код, который у меня есть:

@ECHO Off
choice /M "Is this correct"
IF ERRORLEVEL 1 echo This is correct
IF ERRORLEVEL 2 echo This is not correct
echo %errorlevel%

Когда я нажимаю y, я получаю This is correct, но когда я нажимаю n, я получаю This is correct и This is not correct

Почему запускается ли первый вариант? Из echo %errorlevel% я вижу, что errorlevel равно 2.

Я использую echo здесь в качестве примера, это фактический файл batch. У меня есть goto, и я получаю первый goto срабатывает постоянно.

1 Ответ

0 голосов
/ 04 июня 2020

Найдено на ss64

IF ERRORLEVEL n операторы следует читать как IF Errorlevel> = number

Это означает, что он выполнит все остальные функции, которые меньше или равны ERRORLEVEL.

Чтобы избежать этого, попробуйте следующее.

@Echo off
choice /m "Would you like to continue?"
if %ERRORLEVEL%==1 Echo Response was Y
if %ERRORLEVEL%==2 Echo Response was N
Echo %ERRORLEVEL%
pause 

Символы%, окружающие ERRORLEVEL, будут отображать значение переменной.

...