标题: [文本处理] [已解决]求助bat如何同时执行多个命令而其他命令顺序执行 [打印本页]
作者: 00JTR00 时间: 2015-9-28 16:00 标题: [已解决]求助bat如何同时执行多个命令而其他命令顺序执行
本帖最后由 00JTR00 于 2015-9-29 11:42 编辑
本人做的样本如下
1、*.exe是按顺序执行的
@echo off
a.exe /log #带有其他参数
b.exe
c.exe
2、将每个*.exe 作为一个bat后能够同时执行,但之后其他指令如copy,也同时执行,而我希望能够等bat执行完后再执行其他指令
@echo off
a.bat
b.bat
c.bat
copy * *
作者: 缱绻星光 时间: 2015-9-28 19:21
本帖最后由 缱绻星光 于 2015-9-28 19:43 编辑
start好像可以!
作者: 回家路上 时间: 2015-9-28 19:53
本帖最后由 回家路上 于 2015-9-28 19:56 编辑
1、知道几个exe执行时间最长的具体时间多长那个,就让主进程等那么长时间(当然这种就不保险了,万一意外到时间没执行完)- @echo off
- echo;------开始--------
- start /b a.exe
- start /b b.exe
- start /b c.exe
- :: 主进程等这么长时间(比如最长的是12秒,你就等15秒)再往下执行
- ping -n 15 127.1 >nul
- echo;------继续往下--------
- pause
复制代码
2、不知道最长的具体时间,但是知道那个时间最长
把执行时间最长的exe(比如是c.exe)放在最后,用call调用,其他两个用start /b调用- @echo off
- echo;------开始--------
- start /b a.exe
- start /b b.exe
- call c.exe
- echo;------继续往下--------
- pause
复制代码
3、如果完全不能确定时间那就要用临时文件多个进程之间通信了。不满足再试吧O(∩_∩)O!
作者: 00JTR00 时间: 2015-9-28 21:58
回复 3# 回家路上
现在已经用这种了,但是感觉这方法很土,求高科技
作者: 回家路上 时间: 2015-9-28 22:48
本帖最后由 回家路上 于 2015-9-28 22:50 编辑
土... ...呵呵。
作为脚本语言,要的就是方便快捷。如果要复杂通用高级,鉴于调试难度,何不用编程语言呢。
作者: 小智BAT 时间: 2015-9-28 23:42
回复 4# 00JTR00
批处理就不是个高科技,呵呵
作者: 小智BAT 时间: 2015-9-28 23:55
这个应该适合你。- @echo off
- start /b a.exe
- start /b b.exe
- start /b c.exe
- :waiting
- ping 127.1 -n 5 >nul
- set n=0
- tasklist /nh | find /i "a.exe" >nul &&echo ×. a在运行 && set n=1
- tasklist /nh | find /i "b.exe" >nul && echo ×. b在运行 && set n=1
- tasklist /nh | find /i "c.exe" >nul && echo ×. c在运行 && set n=1
- if %n% neq 0 (
- color 4f
- echo -------------------------------------------------
- echo 检测以上进程还在运行,等待5秒进行扫描....
- echo --------------------------------------------------
- goto :waiting
- )
- echo;------继续往下--------
- rem 省略一万个字.....
- pause
复制代码
作者: 00JTR00 时间: 2015-9-29 09:34
回复 7# 小智BAT
这个好,我实验下
作者: wikou 时间: 2015-10-3 00:37
这个好,我实验下
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |