2012-03-02 285 views
2

比方说,我有一个顺序运行一个接一个(通过Windows任务调度一个普通的Windows XP的PC上执行)5个批处理文件:错误套的批处理文件在Windows任务调度运行处理

Script1.bat 
Script2.bat 
Script3.bat 
Script4.bat 
Script5.bat 

假设其中一个脚本失败(检测到错误情况 - 关于发生这种情况的细节对于我的问题并不重要)。如果所有其他脚本都在任务调度程序中运行,如何停止运行其他脚本?例如,如果Script1.bat失败,我不想运行Script2-5.bat。如果Script3.bat失败,我不想运行Script4-5.bat等。

我曾考虑过将标志值写入临时文件,每个脚本都会读取。在每个脚本的开始处(除了第一个脚本之外),它将检查该标志是否有效。每次运行这些批处理文件时,第一个脚本将在开始时清除该标志。

当然有更好的方法来做到这一点,或者有一个如何处理这种情况的标准?谢谢!

回答

1

编写一个有条件地依次调用每个脚本的master.bat文件。然后安排主人而不是直接安排5个脚本。

@echo off 
call Script1.bat 
if %errorlevel%==0 call Script2.bat 
if %errorlevel%==0 call Script3.bat 
if %errorlevel%==0 call Script4.bat 
if %errorlevel%==0 call Script5.bat