2017-06-13 45 views
-1

好吧,所以我在使用errorlevel和選擇命令時遇到了一些麻煩,坦率地說,我不知道發生了什麼。選擇命令在批處理不工作

我一直在使用這種代碼:每當我進入1

: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 

,什麼都不會發生。與2相同的東西。但是每當我輸入3時,它都有效。誰能幫忙?

+5

Your Choice命令只接受四個字符作爲輸入'7','0','3'&'4'。我想你可能想把它改成'CHOICE/C 123/N' – Compo

+1

你有沒有想過閱讀['choice'命令](http://ss64.com/nt/choice.html)的文檔,通過在新的命令提示符窗口中輸入「choice /?'? – aschipfl

+0

感謝您的幫助@Compo!有效!我不確定這個數字是什麼,我認爲它是一個變量或類似的東西。謝謝! – Gustav

回答

1

由於選擇限制你的輸入,錯誤級別只能是1,2,3,255

一個可以省略所有,如果命令,如果你追加ERRORLEVEL您轉到標籤:相應 和名稱的所有標籤。

@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