标题: [特效代码] [已解决]多个批处理,如何寻找最后运行结束的那个? [打印本页]
作者: jzsgyml 时间: 2011-4-18 09:20 标题: [已解决]多个批处理,如何寻找最后运行结束的那个?
本帖最后由 jzsgyml 于 2011-4-18 12:25 编辑
三个批处理“1.bat”“2.bat”“3.bat”,某段时间程序会全部调用它们,但是不确定调用的顺序,以及这三个批处理运行结束的先后顺序。
现在的要求是,最后结束的批处理,能够判断自己是最后结束的,然后执行断开网络,断开后结束这三个批处理进程- rasdial adsl /disconnect >nul
- taskkill /f /t /im cmd.exe
复制代码
我个人考虑的解决方案是,在三个批处理末尾都加上一个判断自己是不是最后结束的代码,思路如下- echo 结束>>"D:\finish.txt" 运行完毕就写入一行,用来判断是否3个批处理都写入了1行
- 判断"D:\finish.txt"的行数是否达到3行
- 如果达到3行,执行
- 清空"D:\finish.txt",让他下一次调用能够循环
- rasdial adsl /disconnect >nul断网
- taskkill /f /t /im cmd.exe关闭三个批处理进程
-
- 如果没有达到3行,说明这个批处理是第一个,或者第二个结束的
- 执行等待pause,让最后结束的来关闭全部cmd窗口
复制代码
求下思路实际代码,或者咨询下各位有更好的解决方案?
作者: hanyeguxing 时间: 2011-4-18 09:39
本帖最后由 hanyeguxing 于 2011-4-18 09:48 编辑
方法可以有很多,但不明白为什么要一起结束呢?- @echo off
- for %%a in (finish.txt) do if "%%~za"=="2" (
- del finish.txt
- rasdial adsl /disconnect >nul
- taskkill /f /t /im cmd.exe
- )
- set/p=a<nul>finish.txt
- pause
复制代码
作者: jzsgyml 时间: 2011-4-18 10:04
因为程序暂停运行然后去调用三个批处理,是监控这三个批处理的进程是否存在,如果提前结束先完成的批处理进程,程序会马上启动,就出错了,所以要等3个都完成了再一起结束进程,我测试测试,谢谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |