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

來源:互聯網
上載者:User

標籤:

從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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.