Команда выбора в пакетном режиме не работает

Итак, у меня возникли некоторые проблемы с использованием errorlevel и команды выбора, и, честно говоря, я понятия не имею, что происходит.

Я использовал этот код:

:CACD  
set stage=CACD  
echo.  
echo Make a choice  
echo.  
echo 1)  
echo 2)    
echo 3)  
echo.  
choice /c 7034 /n  
if %errorlevel% == "3" goto choice3  
if %errorlevel% == "2" goto se2  
if %errorlevel% == "1" goto choice1  
goto CACD  

:choice3  
echo you chose 3  
pause  
goto CACD  

:se2  
echo you chose 2  
pause  
goto CACD  

:choice1  
echo you chose 1  
goto CACD

Всякий раз, когда я ввожу 1, ничего не происходит. То же самое с 2. Но когда я ввожу 3, это работает? Кто-нибудь может помочь?

1 ответ

Так как выбор ограничивает ваш ввод, уровень ошибки может быть только один из 1,2,3,255

Вы можете опустить все команды if, если добавите уровень ошибки к метке goto: и присвойте всем меткам соответствующие имена.

@Echo off
:CACD  
set stage=CACD  
echo.  
echo Make a choice  
echo.  
echo 1)  
echo 2)    
echo 3)  
echo.  
choice /c 123 /n  
goto choice%errorlevel%
:Choice255
Echo an error occured with your choice
goto :Eof  

:choice3  
echo you chose 3  
pause  
goto CACD  

:choice2  
echo you chose 2  
pause  
goto CACD  

:choice1  
echo you chose 1  
goto CACD
Другие вопросы по тегам