Команда выбора в пакетном режиме не работает
Итак, у меня возникли некоторые проблемы с использованием 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