我对选择命令感到困惑。 这是我的代码:
@echo off
:start
cls
echo yes or no?
Choice/c yn
if errorlevel 1 goto yes
if errorlevel 2 goto no
:yes
echo you pressed yes
pause
goto start
:no
echo you pressed no
pause
goto start
问题是我每次都是肯定的。我想出我是否用过这个:
set x=%errorlevel%
然后使用
if %x%==1 goto yes
if %x%==2 goto no
并且脚本运行正常。为什么是这样?我想我记得读过一些关于检查errorlevel实际上可能设置一个新的错误级别,如果是false,或类似的东西。一点帮助?
答案 0 :(得分:6)
构造if errorlevel n
检查errorlevel是否至少为n。因此,如果errorlevel为4,那么所有测试if errorlevel 1
到if errorlevel 4
都会返回true。
进行测试的方法是从较高的错误级别到较低的错误级别
if errorlevel 2 goto no
if errorlevel 1 goto yes
答案 1 :(得分:3)
您可以使用提到的语法MC ND,或者使用更清晰的
语法if %errorlevel%==1 goto yes
if %errorlevel%==2 goto no