我有一些批处理文件在一周中的某几天运行某些任务,我认为它们工作正常,直到我的需要任务的同事指出我的代码正在发送电子邮件说这个过程失败了,但是Task Scheduler表明任务运行正常。然后我们检查了输出结果,他们似乎是正确的。带任务计划程序的嵌套批处理文件返回码
基本上我的批处理文件调用另一个批处理文件,那个运行一个可执行文件,有时候是一个python程序(取决于它是哪个任务)。然后检查该批处理文件的返回代码,并发送相应的电子邮件(我在下面附加了一个我的这些批处理文件的代码)。
我的问题是:如果可执行文件失败,并因此内部批处理文件失败,并且运行失败的电子邮件python脚本,整个批处理文件是否返回为0x00?还是会返回内部批处理文件的错误代码为“出错”?
ECHO ON
cd G:\Reports\Batch Files\
G:
call ContactsReview.bat
IF %ERRORLEVEL% NEQ 0 (
python G:\mtsprograms\python\ContactsFailed.py
)
IF %ERRORLEVEL% EQU 0 (
python G:\mtsprograms\python\ContactsReviewEmail.py
)
我对这个问题的理由是,如果ContactsReview.bat失败和错误校验运行ContactsFailed.py脚本,并整体批处理文件认为:“嘿,我完成了我的剧本,返回0x00”?我写了这段代码,假设它会认为“ContactsReview.bat失败,这个错误,处理错误,并返回错误代码”。
的OP是询问如何保持ERRORLEVEL和返回值,而不是如何检测错误。 – dbenham