博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows批处理 调用程序后 不等待子进程 父进程继续执行命令
阅读量:6116 次
发布时间:2019-06-21

本文共 1183 字,大约阅读时间需要 3 分钟。

从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.exe echo "ok"                /输出“OK” ping /n 5 127.1 >nul           /延时 5S exit
问题就是这么写死活都无法在运行abc.exe之后自动关闭CMD窗口。后来我终于想起来WINDOWS的命令提符中有一个start命令,心想使用它也许批处理就不会等待abc.exe执行完毕了。于是把批处理改为:
@echo off           /这是不让CMD窗口中显示运行的什么命令 DOS命令             /这是一系列DOS命令,用DOS命令代替 start abc           /最后要调用的WINDOWS程序文件名为abc.exe echo "ok"           /输出“OK” ping /n 5 127.1 >nul       /延时 5S exit

果然,abc.exe运行之后,这个批处理就继续执行后面的exit命令,从而自己退出了。原来,使用start调用的程序,批处理是不会等待程序运行结束的。遇到与我相同问题的朋友,不妨一试。
参考:http://www.cnblogs.com/yukaizhao/archive/2010/07/03/1770659.html

转载于:https://www.cnblogs.com/zhengah/p/5219722.html

你可能感兴趣的文章
各版本浏览器核心与兼容性
查看>>
在 node 中使用模板引擎
查看>>
Spring+Spring MVC+MyBatis整合
查看>>
小程序转发功能
查看>>
码云,git使用 教程
查看>>
nginx添加编译lua模块
查看>>
“.NET研究”带你走进缓存世界
查看>>
通过JavaScript或PHP检测Andro“.NET研究”id设备
查看>>
一起谈.NET技术,NHibernate3剖析:Mapping篇之ConfORM实战(2):原理
查看>>
初涉编程
查看>>
数字滤波器
查看>>
python mock基本使用
查看>>
Siebel调用Oracle存储过程
查看>>
d3.max()与d3.min()
查看>>
关于TCP/IP的三次握手和四次挥手解释
查看>>
用 string 进行插入、替代、查找输出下标等操作
查看>>
NetCDF 介绍
查看>>
车辆管理系统(九)
查看>>
最短路径Floyd算法【图文详解】
查看>>
POJ 3264 Balanced Lineup【线段树区间查询求最大值和最小值】
查看>>