Windows批處理 調用程序后 不等待子進程 父進程繼續執行命令


從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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM