问题描述
如题,需要批处理a.exeb.exec.exed.exe....使用.bat文件调用,需要他们同时运行,即starta.exestartb.exestartc.exe...但是还存在另一个批处理程序需要等他们得出各自的实验结果才能进行调用,使用/wait指令貌似破坏了他们并行运行的特性,变为线性运行的,有什么方法在不改变exe程序下判断一个bat文件中所有的批处理是否完成呢?
解决方案
解决方案二:
运行完成后的特征,也就是判断条件是什么?程序会自动退出?接收数据的程序会提交消息?
解决方案三:
cmd是单线程的,因此在cmd里面a.exeb.exec.exed.exe这样只会依次执行,并不会同时执行。新建4个Process,每个Process打开一个cmd.exe,指定它们运行你的四个子程序,每个Process都调用WaitForExist等待,用4个Process的HasExist条件与结果来判断是否四个都执行完毕。
解决方案四:
引用1楼qqamoon的回复:
运行完成后的特征,也就是判断条件是什么?程序会自动退出?接收数据的程序会提交消息?
就是想知道怎么判断bat启动的所有程序运行完毕呢,程序的功能就只是修改文本中的数据,每个程序运行完毕后就return0了,然后退出,没有接收消息。
解决方案五:
引用2楼bluesky12007的回复:
cmd是单线程的,因此在cmd里面a.exeb.exec.exed.exe这样只会依次执行,并不会同时执行。新建4个Process,每个Process打开一个cmd.exe,指定它们运行你的四个子程序,每个Process都调用WaitForExist等待,用4个Process的HasExist条件与结果来判断是否四个都执行完毕。
引用2楼bluesky12007的回复:
cmd是单线程的,因此在cmd里面a.exeb.exec.exed.exe这样只会依次执行,并不会同时执行。新建4个Process,每个Process打开一个cmd.exe,指定它们运行你的四个子程序,每个Process都调用WaitForExist等待,用4个Process的HasExist条件与结果来判断是否四个都执行完毕。
这种同时start多个程序都会一起执行,开程序建procsee这种方式我一会儿试试
解决方案六:
可以在bat中,startexe以后,检测exe进程是否都存在,如果有任何一个存在,就循环检查,直到所有exe都运行完毕退出循环。
解决方案七:
5楼方法可行
解决方案八:
“不改变exe程序下”,其实你就可以自己写一个MyStart.exe来封装它们。例如startMyStart"1.txt"a.exestartMyStart"2.txt"b.exestartMyStart"3.txt"c.exe...
你的MyStart.exe可以去执行一个exe,然后创建一个标志文件。使用process当然也是可以的,只不过既然是一个综合的解决方案exe程序,那么你需要让它能通用灵活地“配置”要执行的内容,而不是把运行哪些东西都写死到一个程序中。
解决方案九:
恩,修正一下,我说的其实是MyStart.bat,而不是MyStart.exe。