这个逻辑是不是要向'mailerror'子程序发送0和1错误级别,如果它们是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
)
答案 0 :(得分:0)
首先,您不需要所有这些括号。此外,您目前正在测试错误级别0
,然后1
,但您的else
位置错误,因此errorlevel 1
子句将不执行任何操作(不退出):< / p>
这将在errorlevel 0
和errorlevel 1
@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..
但看到你想要做除错误级别0
和1
以外的任何事情,你只需设置%errorlevel%
大于1
(换句话说不是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..
根据@Stephan的评论。一些罕见的程序会产生负的错误级别,如果是第一个选项的情况,或者这样:
@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..
答案 1 :(得分:0)
如果错误为Exit
或0
,您的问题短语建议您1
:
IF %ERRORLEVEL% GEQ 0 IF %ERRORLEVEL% LEQ 1 EXIT /B
REM MAILERROR CODE BELOW HERE