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
參考:http://www.cnblogs.com/yukaizhao/archive/2010/07/03/1770659.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14184018/viewspace-714703/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 08 Windows批處理之執行編譯後的程式Windows編譯
- Jquery ajax載入等待執行結束再繼續執行下面程式碼操作jQuery
- php返回資料後如何讓程式繼續執行其它操作PHP
- Thread 中的 join() 方法的作用是呼叫執行緒等待該執行緒執行完後,再繼續執行thread執行緒
- fork、父程式和子程式
- linux 子程式可以繼承父程式正在監聽的埠嗎? 如何子程式關閉了繼承的埠,父程式還能使用這個埠嗎?Linux繼承
- 後臺程式在處理繁重的任務時,呼叫外部程式非同步執行的簡單實現非同步
- Java多種方法實現等待所有子執行緒完成再繼續執行Java執行緒
- LOTO示波器動作程式設計功能(命令批處理)程式設計
- java中異常丟擲後程式碼還會繼續執行嗎Java
- C#使用程式呼叫bash,不斷往bash內插入命令並執行C#
- 'telnet' 不是內部或外部命令,也不是可執行的程式 或批處理檔案。
- ‘javac‘ 不是內部或外部命令,也不是可執行的程式 或批處理檔案。Java
- 批處理檔案 bat 後臺執行BAT
- 04 Windows批處理中的條件執行Windows
- 如何在批處理模式下執行 top 命令模式
- windows核心程式設計--windows程式的執行Windows程式設計
- Windows 2008 r2任務計劃程式執行批處理失敗問題解決方法Windows
- 雲伺服器客戶端斷開後,如何保持程式繼續執行呢?伺服器客戶端
- ‘NODE_OPTIONS‘ 不是內部或外部命令,也不是可執行的程式或批處理檔案
- NODE_ENV 不是內部或外部命令,也不是可執行的程式,或者批處理檔案
- BAT批處理判斷服務是否正常執行(批處理命令綜合應用)BAT
- (已解決)'ng' 不是內部或外部命令,也不是可執行的程式或批處理檔案
- 程式設計師需要懂點的批處理命令之bat(1.0)程式設計師BAT
- Linux socke server程式設計:父程式和子程式關係LinuxServer程式設計
- [Golang]呼叫外部shell程式處理檔案Golang
- 09 Windows批處理之標籤和無序執行Windows
- jenkins後臺程式執行Jenkins
- shell:nohup (在系統後臺不掛起地執行命令,退出終端不會影響程式的執行)
- Java程式執行系統命令Java
- 接上節我們來了解了解多程式的一些基礎程式 / 執行緒 / 多程式 / 父程式 / 子程式 / 會話 / 控制終端等執行緒會話
- windows 執行 java程式時 無故停止不動 問題WindowsJava
- 10 Windows批處理之呼叫例程和bat檔案WindowsBAT
- Python錯誤集錦:”‘python’ 不是內部或外部命令,也不是可執行的程式 或批處理檔案。”Python
- Windows 批處理之DATE命令的使用方法Windows
- [apue] 等待子程式的那些事兒
- 批處理命令之tree命令
- performSelector:withObject:afterDelay: 在子執行緒中呼叫不執行performSelectorObject執行緒
- Jenkins執行遠端Windows批處理的許可權問題JenkinsWindows