在批处理文件中使用errorlevel来了解程序是否正常退出

时间:2012-10-31 03:01:32

标签: batch-file

我们有一个偶尔崩溃的程序。客户从计划任务运行程序。当程序使用某个参数运行时,程序作为接口引擎运行,创建一个文件,然后将文件ftp到另一个服务器以供另一个程序导入。

我想知道我是否可能有计划任务而不是运行批处理文件。批处理文件将运行程序并在程序退出时检查errorlevel。如果errorlevel不等于零,则批处理文件将再次运行程序。有没有人发现我的计划在批处理文件中使用errorlevel有问题?

以下是批处理文件的示例:

:start    
myPgm.exe intfc    
if errorlevel <> 0 then start

2 个答案:

答案 0 :(得分:13)

我会这样写:

:start
myPgm.exe intfc
IF %errorlevel% NEQ 0 GOTO :error
GOTO :end
:error
echo There was an error.
EXIT 1
:end
echo End.
EXIT 0

答案 1 :(得分:3)

您的IF声明错误。它应该读

if %errorlevel% neq 0 goto start

或者您的脚本可以阅读

:start
myPgm.exe intfc || goto start