Batch file 错误级别条件
该逻辑是否应该将0和1错误级别发送到“mailerror”子例程,如果它们是0或1错误,则直接退出Batch file 错误级别条件,batch-file,conditional-statements,errorlevel,Batch File,Conditional Statements,Errorlevel,该逻辑是否应该将0和1错误级别发送到“mailerror”子例程,如果它们是0或1错误,则直接退出 IF %ERRORLEVEL% NEQ 0 ( IF %ERRORLEVEL% NEQ 1 ( SET BODY="exit error code from Backup of RAD file = %ERRORLEVEL%." goto mailerror ) ) ELSE ( EXIT ) 首先,您不需要所有这些括号。此外,您当前正在测试error
IF %ERRORLEVEL% NEQ 0 (
IF %ERRORLEVEL% NEQ 1 (
SET BODY="exit error code from Backup of RAD file = %ERRORLEVEL%."
goto mailerror
)
) ELSE (
EXIT
)
首先,您不需要所有这些括号。此外,您当前正在测试errorlevel
0
和1
,但是您的else
位于错误的位置,因此errorlevel 1
子句将不起任何作用(不退出):
这将在errorlevel0
和errorlevel1
@echo off
if %errorlevel% neq 0 if %errorlevel% neq 1 (
set BODY="exit error code from Backup of RAD file = %errorlevel%."
echo %body%
goto mailerror
)
exit
:mailerror
echo %BODY%
echo do something else..
但是,如果您想执行除errorlevel0
和1
以外的任何操作,您只需执行set if%errorlevel%
大于1
(换句话说,不是0
或1
):
根据他的评论。一些罕见的程序会生成负错误级别,如果是这种情况,则第一个选项可以,或者:
@echo off
if %errorlevel% GTR 1 if %errorlevel% lss 0 (
set BODY="exit error code from Backup of RAD file = %errorlevel%."
goto mailerror
)
exit
:mailerror
echo %BODY%
echo do something else..
如果错误为
0
或1
,您的问题措辞建议您退出:
@echo off
if %errorlevel% GTR 1 (
set BODY="exit error code from Backup of RAD file = %errorlevel%."
goto mailerror
)
exit
:mailerror
echo %BODY%
echo do something else..
IF%ERRORLEVEL%GEQ 0 IF%ERRORLEVEL%LEQ 1退出/B
下面是错误代码
如果%ErrorLevel%Gtr 1
,您是否在寻找?(如果错误级别为2
)。顺便说一句,错误级别0
不是我所说的错误,它通常是成功的<代码>如果不是错误级别1
通常用于识别0
的错误级别
,其中RAS如果错误级别1
通常用于确定任何未成功的错误,即错误。否。else
子句仅指外部if
条件。因此0
的%ErrorLevel%
导致退出
,而1的%ErrorLevel%
则不会导致任何操作!所有其他值,包括负值,都会导致跳转到例程:mailerror
。注意:某些(罕见)程序会返回负值ErrorLevel,因此可能还需要考虑这一点。