如果在错误值上选择Windows批处理
我试图在一个小测试批处理文件中使用CHOICE命令。 以下是我的代码:如果在错误值上选择Windows批处理,windows,batch-file,Windows,Batch File,我试图在一个小测试批处理文件中使用CHOICE命令。 以下是我的代码: @ECHO Off choice /M "Is this correct" IF ERRORLEVEL 1 echo This is correct IF ERRORLEVEL 2 echo This is not correct echo %errorlevel% 当我按y时,我得到这是正确的,但当我按n时,我得到这是正确的和这是不正确的 为什么会触发第一个选项?从echo%errorlevel%中,我可以看到error
@ECHO Off
choice /M "Is this correct"
IF ERRORLEVEL 1 echo This is correct
IF ERRORLEVEL 2 echo This is not correct
echo %errorlevel%
当我按y
时,我得到这是正确的
,但当我按n
时,我得到这是正确的
和这是不正确的
为什么会触发第一个选项?从echo%errorlevel%
中,我可以看到errorlevel
为2
我在这里使用的是echo
作为示例,它是实际的批处理文件,我有一个goto,并且我一直都在触发第一个goto。在
IF ERRORLEVEL n语句的读取方式应与ERRORLEVEL>=number一样
这意味着它将执行小于或等于ERRORLEVEL的所有其他函数
为了避免这种情况,试试这个
@Echo off
choice /m "Would you like to continue?"
if %ERRORLEVEL%==1 Echo Response was Y
if %ERRORLEVEL%==2 Echo Response was N
Echo %ERRORLEVEL%
pause
ERRORLEVEL周围的%将显示变量的值。如果ERRORLEVEL
表示如果ERRORLEVEL
大于或等于
,则按降序使用条件……或者,使用以下命令捕获按键:Echo is this true?&For/F“Delims=“%%C in”()“%\uuuu AppDir\uuuu%\ Choice.exe”/N/C:yn')Do Set“OPT=%%C”
@aschipfl我看到了一些示例,其中他们使用了if ErrorLevel N
,这让我相信它在做a==,我猜我错了。谢谢@T3RR0R谢谢你的建议