求助!.bat如何判断批处理程序全部完毕

问题描述

如题,需要批处理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。

时间: 2024-11-23 13:39:45

求助!.bat如何判断批处理程序全部完毕的相关文章

批处理程序-如何用批bat处理程序删除文件?

问题描述 如何用批bat处理程序删除文件? 我有一个定时备份的程序,在我的C盘根目录下每天生成一个文件,文件命名统一为:ABCD20160401QQQ.val,ABCD20160402WEQ.val,ABCD20160403EWG.val,ABCD20160404QPQ.val,就是说可以从日期看出是哪天的备份文件. 我现在想在定时程序中新增一个功能,就是备份完成后,删除30天之前的老文件. 谢谢大家了. 解决方案 删除编译文件的批处理程序

批处理程序删除自身 bat批处理_DOS/BAT

批处理程序删除自身.bat echo 有时候我们需要批处理程序在执行完成之后删除自身,可以用 del %0 例: 复制代码 代码如下: @echo off echo 按任意键后我将删除自身 pause del %0 不过如果你的批处理需要将当前的批处理改变目录就会出现错误,无法达到我们预知的效果. 例如:当前批处理名为 do.bat 复制代码 代码如下: move *.* d:\ del %0 就无法删除do.bat了.那么就需要结合下管道操作符| 复制代码 代码如下: del %0 | mov

如何让批处理程序启动的时候最小化_DOS/BAT

批处理隐藏运行 隐藏批处理本身 复制代码 代码如下: @echo off if "%1"=="h" goto begin start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin ::以下为正常批处理命令,不可含有pause set/

Call 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。_DOS/BAT

Call 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序.call 命令接受用作调用目标的标签.如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用. 语法 call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] 参数 [Drive:}[Path] FileName  指定要调用的批处理程序的位置和名称.filename 参数必须具有 .bat 或 .cmd 扩展名.  BatchPara

.bat中调用java程序,且得到java的输出(system.out.println)内容

问题描述 如题:在.bat中调用java程序,且得到java的输出(system.out.println)内容.我要在bat中执行"java-jarxxx.jar"并且用一个变量保存jar运行后的输出结果,jar中要么输出(system.out.println)0要么输出1,并且对结果进行判断如果变量值为0(注:变量的值是由jar运行产生的)则使用exit/B0退出,如果变量值1则使用exit/B1退出linux版的.sh代码如下:var=`java-jarxxxxx.jar${use

websphere 用wsadmin怎么判断应用程序的状态是启动还是停止啊

问题描述 websphere用wsadmin怎么判断应用程序的状态是启动还是停止啊 解决方案 解决方案二:http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.nd.doc/info/ae/ae/rxml_admincontrol.html?resultof=%22%41%64%6d%69%6e%43%6f%6e%74%72%6f%6c%2e%69%6e%76%6f%6b%65%22%20%22

linux-新手求助,Linux多应用程序求助

问题描述 新手求助,Linux多应用程序求助 比如有两个应用程序A.EXE B.EXE 存放在不同的路径下面A.EXE存放在/home/ap/0/A.exe B.EXE存放在/home/ap/1/B.exe 如果要以A.EXE作为主程序来运行,然后使用FORK来建立子程序,然后在子程序中的execl调用B.EXE, 目前发现在A程序当中不能找到B.EXE, 求助大神能解答, 如果能调用起来,可否使用msgget msgsnd msgrcv 在两个程序直接互相通信 解决方案 参考进程通信,有很多方

大神救我-新手求助关于一些小问题 程序!!!!!!!!!

问题描述 新手求助关于一些小问题 程序!!!!!!!!! 1.怎样用JAVA编写资源管理器 打开有目录的: 2.怎样用JAVA访问 网页 输入IP访问 3.怎么样用JAVA实现两台电脑的链接 (写这些需要学会哪些,难不难?) 解决方案 (1)递归遍历目录,api是现成的,另外会用swt的treeview做个界面 (2)http://www.tuicool.com/articles/7zui2y3 (3)socket http://www.cnblogs.com/linzheng/archive/

ios-iOS MJrefresh 关于上拉加载怎么判断已经加载完毕

问题描述 iOS MJrefresh 关于上拉加载怎么判断已经加载完毕 iOS MJrefresh 关于上拉加载怎么判断已经加载完毕,我的一直上拉加载,显示null,不要就重复上面的 解决方案 http://download.csdn.net/detail/u012113447/8325615 解决方案二: 如果上拉加载的数据是最后一组,也就是再去上拉加载已经没数据了,那么就关闭上拉加载功能,下面就会显示没有很多数据且不能上拉加载,MJ里面有这个关闭的功能的,接口在github说明里就有,你往下