如果我有这样的代码:
@echo off
choice /C BL /M "Clear screen or list actual directory"
if errorlevel 2 goto l
if errorlevel 1 goto b
:l
tree /f
goto final
:b
cls
goto final
:final
我知道这确实有效,但是我对错误级别部分的一件事感到困惑。 我首先写了相同的代码,但是像这样:
if errorlevel 1 goto l
if errorlevel 2 goto b
那样,它将无法正常工作它只会记住错误代码1。如果按第二个选项,则无法工作。
我真的想知道为什么错误顺序很重要,如果一批应该逐行执行,还是我错了?
简而言之,我想了解的是错误代码在这里的工作方式
答案 0 :(得分:2)
只是一个提示,当使用附加到goto标签的CFLAGS
变量时,事情可能很简单:
%errorlevel%
答案 1 :(得分:0)
C:\>if /?
...
IF [NOT] ERRORLEVEL number command
...
ERRORLEVEL number Specifies a true condition if the last program run returned
an exit code equal to or greater than the number specified.
换句话说,if errorlevel 1
会针对任何错误级别(除了0 =无错误)执行,因为它们都等于或大于1。