批处理中的选择命令不起作用

时间:2017-06-13 10:53:26

标签: batch-file errorlevel

好的,所以我在使用errorlevel和choice命令时遇到了一些麻烦,坦率地说我不知道​​发生了什么。

我一直在使用这段代码:

: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 个答案:

答案 0 :(得分:1)

由于选择限制了您的输入,因此errorlevel只能是1,2,3,255

之一

如果将errorlevel附加到goto标签,则可以省略所有if命令: 并相应地命名所有标签。

@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