Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果在错误值上选择Windows批处理_Windows_Batch File - Fatal编程技术网

如果在错误值上选择Windows批处理

如果在错误值上选择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

我试图在一个小测试批处理文件中使用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%
中,我可以看到
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谢谢你的建议