Windows批处理 调用程序后 不等待子进程 父进程继续执行命令
2012-12-20 16:17
746 查看
http://space.itpub.net/14184018/viewspace-714703
从DOS过来的老鸟应该都知道批处理,这个功能在WINDOWS中仍然保留着。批处理说白了就是把一系列DOS命令写在一个文本文件里,然后把这个文件命名为XXX.bat(WINXP以后的系统也可以命名为*.cmd),然后运行它就可以一次执行一系列命令和程序了,当然也包括WINDOWS下的程序。
昨天处理一个问题时需要写一个批处理,批处理的前面运行了几个DOS命令,最后调用一个WINDOWS程序。可问题是,调用的WINDOWS程序打开后,CMD命令提示符窗口不会关闭,而是要等待这个WINDOWS程序关闭后它才会关闭。回想以前DOS下的批处理,都是执行一个程序,然后等待这个程序执行完毕后才会执行下一个程序,因为DOS是单任务操作系统嘛。但WINDOWS里有没有什么方法让批处理调用程序后不用等待程序结束而继续执行后面的命令呢?网上搜了一下,也没找出个结果。自己又研究了半天,终于解决了。解决的关键就是使用了一个不太常用的命令:start
一开始我的批处理是这么写的(“/”和后面的内容是注释):
@echo off /这是不让CMD窗口中显示运行的什么命令DOS命令 /这是一系列DOS命令,用DOS命令代替abc
/最后要调用的WINDOWS程序文件名为abc.exeecho "ok" /输出“OK”ping /n 5 127.1 >nul
/延时 5Sexit
问题就是这么写死活都无法在运行abc.exe之后自动关闭CMD窗口。后来我终于想起来WINDOWS的命令提符中有一个start命令,心想使用它也许批处理就不会等待abc.exe执行完毕了。于是把批处理改为:
@echo off /这是不让CMD窗口中显示运行的什么命令DOS命令
/这是一系列DOS命令,用DOS命令代替start
abc /最后要调用的WINDOWS程序文件名为abc.exeecho "ok"
/输出“OK”ping /n
5 127.1 >nul /延时 5Sexit
果然,abc.exe运行之后,这个批处理就继续执行后面的exit命令,从而自己退出了。原来,使用start调用的程序,批处理是不会等待程序运行结束的。遇到与我相同问题的朋友,不妨一试。
参考:http://www.cnblogs.com/yukaizhao/archive/2010/07/03/1770659.html
从DOS过来的老鸟应该都知道批处理,这个功能在WINDOWS中仍然保留着。批处理说白了就是把一系列DOS命令写在一个文本文件里,然后把这个文件命名为XXX.bat(WINXP以后的系统也可以命名为*.cmd),然后运行它就可以一次执行一系列命令和程序了,当然也包括WINDOWS下的程序。
昨天处理一个问题时需要写一个批处理,批处理的前面运行了几个DOS命令,最后调用一个WINDOWS程序。可问题是,调用的WINDOWS程序打开后,CMD命令提示符窗口不会关闭,而是要等待这个WINDOWS程序关闭后它才会关闭。回想以前DOS下的批处理,都是执行一个程序,然后等待这个程序执行完毕后才会执行下一个程序,因为DOS是单任务操作系统嘛。但WINDOWS里有没有什么方法让批处理调用程序后不用等待程序结束而继续执行后面的命令呢?网上搜了一下,也没找出个结果。自己又研究了半天,终于解决了。解决的关键就是使用了一个不太常用的命令:start
一开始我的批处理是这么写的(“/”和后面的内容是注释):
@echo off /这是不让CMD窗口中显示运行的什么命令DOS命令 /这是一系列DOS命令,用DOS命令代替abc
/最后要调用的WINDOWS程序文件名为abc.exeecho "ok" /输出“OK”ping /n 5 127.1 >nul
/延时 5Sexit
问题就是这么写死活都无法在运行abc.exe之后自动关闭CMD窗口。后来我终于想起来WINDOWS的命令提符中有一个start命令,心想使用它也许批处理就不会等待abc.exe执行完毕了。于是把批处理改为:
@echo off /这是不让CMD窗口中显示运行的什么命令DOS命令
/这是一系列DOS命令,用DOS命令代替start
abc /最后要调用的WINDOWS程序文件名为abc.exeecho "ok"
/输出“OK”ping /n
5 127.1 >nul /延时 5Sexit
果然,abc.exe运行之后,这个批处理就继续执行后面的exit命令,从而自己退出了。原来,使用start调用的程序,批处理是不会等待程序运行结束的。遇到与我相同问题的朋友,不妨一试。
参考:http://www.cnblogs.com/yukaizhao/archive/2010/07/03/1770659.html
相关文章推荐
- Windows批处理 调用程序后 不等待子进程 父进程继续执行命令
- java.lang.Runtime.getRuntime().exec 调用后,等待被调用程序结束后再继续执行
- 子进程中调用system命令执行openssl后,程序退出了,原因是SIGCHLD信号的处理
- 调用外部程序并且等待结束后再继续执行程序
- JAVA调用系统命令或可执行程序--返回一个Runtime运行时对象,然后启动另外一个进程来执行命令
- c# 使用Process调用外部程序时等待该进程结束后再执行住进程
- 操作系统实验参考以上示例程序中建立并发进程的方法,编写一个多进程并发执行程序。父进 程首先创建一个执行ls命令的子进程然后再创建一个执行ps命令的子进程,并控制 ps 命令总在 ls 命令之前执行。
- C#程序调用cmd执行命令
- 我在delphi中用shellExecute启动了一个程序(ftp);然后想做一个等待,只到ftp进程结束,再继续下面的操作,请问如何监控这个进程是否已结束?
- wait命令_Linux wait 命令用法详解:等待进程执行完后返回
- php 调用系统命令 执行外部程序
- JAVA学习22_在Java中执行脚本命令以及调用外部程序说明
- Android调用另一个现成的可执行程序或系统命令
- linux 程序调用system执行命令
- c#关闭系统进程以及如何调用cmd并执行命令
- Windows系统中Java调用cmd命令及执行exe程序的方法
- Linux命令行下:把程序放后台执行,以及从后台继续执行程序
- c#进程中调用flashpaper可执行程序
- 命令在程序脚本中调用与串口执行结果不一致?
- VBA调用doc命令,doc窗口关闭之后,继续执行代码