Board logo

标题: 如何依次执行多个批处理 [打印本页]

作者: bluesky000     时间: 2009-7-30 00:07    标题: 如何依次执行多个批处理
现在我有一个程序,它是调用其它程序的,并且是多个程序调用。现在的情况是前一个程序还没执行完,后面的程序就开始执行了,请问下该如何修改能使程序1个1个的执行?

调用.cmd

call D:\batch\Switch\dutswitch_T5581-01.cmd
call D:\batch\Switch\dutswitch_T5581-02.cmd
call D:\batch\Switch\dutswitch_T5581-03.cmd
rem call F:\batch\switch\T5581-04\T5581-04.cmd
rem call F:\batch\switch\T5581-05\T5581-05.cmd
call D:\batch\Switch\dutswitch_T5581-06.cmd
rem call F:\batch\switch\T5581-07\T5581-07.cmd
call D:\batch\Switch\dutswitch_T5581-08.cmd
call D:\batch\Switch\dutswitch_T5581-09.cmd
call D:\batch\Switch\dutswitch_T5581-10.cmd
rem call D:\batch\Switch\dutswitch_T5581-11.cmd
rem call F:\batch\switch\T5581-12\T5581-12.cmd
rem call D:\batch\Switch\dutswitch_T5581-13.cmd
call D:\batch\Switch\dutswitch_T5593-01.cmd
call D:\batch\Switch\dutswitch_T5593-02.cmd
call D:\batch\Switch\dutswitch_T5593-03.cmd
call D:\batch\Switch\dutswitch_T5593-04.cmd
call D:\batch\Switch\dutswitch_T5593-05.cmd
rem call F:\batch\switch\T5593-06\T5593-06.cmd
call D:\batch\Switch\QT5585-01.cmd
call D:\batch\Switch\QT5585-02.cmd
call D:\batch\Switch\dutswitch_UT560-01.cmd
call D:\batch\Switch\dutswitch_UT560-02.cmd
call D:\batch\Switch\dutswitch_UT560-03.cmd
call D:\batch\Switch\dutswitch_UT560-04.cmd
call D:\batch\Switch\dutswitch_UT560-05.cmd

作者: Hanyeguxing     时间: 2009-7-30 10:33
1,最稳妥的方法:将这些批处理合并到一个批处理中。
2,如果各个子批处理中不含call命令和变量延迟,可以使用start /w /b替代父批处理中的call命令。

作者: xswdong     时间: 2009-8-5 00:33
在我的印象中 命令行没有这样的功能,无法判断程序是否已经结束
可以考虑用start 加延时来实现
start 1.exe
ping 127.1 -n3
start 2.exe
ping 127.1 -n 2
start 3.exe
要是嫌ping占资源 在论坛上找延时工具
延时时间 设置成程序运行完毕后时间

作者: lovelymorning     时间: 2009-8-11 12:31
start可以等待调用的程序结束后,再继续执行下一行命令的

而start对于批文件来说,是没用的,因为它最后调用的,还是cmd,而当前窗口不退出,进程中仍然还有cmd的存在,所以,用 start是行不通的

但是,用 call 是可以的,,,只是,你要在每个文件里面,都设置一个,让cmd返回到原来批文件的语句

这样,cmd才不会弄