摘要:BAT - 批次檔使用心得 (五)
最近在呼叫執行檔時,發生了以下的狀況
不曉得看官們有看出來嘛!? 那就是執行程式順利被呼叫了,但是 Console 卻還在,這樣的感覺多不美觀阿,且縱使在 Batch 中下了 Exit 的指令也不會被執行,哪是因為焦點已經離開了 Batch 了,所以 Exit 指令也不會聽你的。
為了克服這點,在茫茫文章中尋找,中找到了解答,那就是使用 Start 來執行執行程式。
Code:
@ECHO OFF
CD C:\
START MYAPI.EXE
EXIT
這樣就既可以讓 Batch 檔呼叫所要執行執行程式,又可以把自己關掉,不再多一個 Console 視窗。
補充:
START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [command/program]
[parameters]
"title" 顯示在視窗標題列上的文字
path 起始目錄
B 啟動應用程式但不建立新視窗。含有 ^C 控制碼的應用程式會
被略過,除非應用程式啟用 ^C 程序,否則 ^Break 是唯一可
以中斷應用程式的方法
I 新環境會使用 cmd.exe 的原始環境,而不是目前的環境。
MIN 視窗最小化
MAX 視窗最大化
SEPARATE 用不同的記憶體空間啟動 16 位元視窗程式
SHARED 用共用的記憶體空間啟動 16 位元視窗程式
LOW 在 IDLE 主要類別中啟動應用程式
NORMAL 在 NORMAL 主要類別中啟動應用程式
HIGH 在 HIGH 主要類別中啟動應用程式
REALTIME 在 REALTIME 主要類別中啟動應用程式
ABOVENORMAL 在 ABOVENORMAL 主要類別中啟動應用程式
BELOWNORMAL 在 BELOWNORMAL 主要類別中啟動應用程式
WAIT 啟動應用程式並等待其結束
command/program
如果這是內部 cmd 命令或批次檔的話,命令處理器會用 /K
參數執行 cmd.exe。這表示視窗會保持到命令執行完成。
如果這不是內部 cmd 命令或批次檔的話,它就是一個程式,
它會以視窗程式或主控台 (DOS) 應用程式的執行方式執行。
parameters 這些是傳給 command/program 的參數。
如果您啟用擴充命令,經由命令列或 START 命令的外部命令執行有以下改變:
可以經由打入檔案名稱的命令來利用檔名連結以啟動非執行檔。(例如 WORD.DOC
會執行和 .DOC 副檔名連結的程式)。請參看 ASSOC 及 FTYPE 命令來了解
如何在指令檔案中建立這些檔案連結。
當執行 32 位元的圖形介面應用程式時,CMD.EXE 並不會等應用程式停止才回到
命令提示。但是如果從指令檔中執行時,則不會有這樣的行為。
當執行一個命令列時,其中第一個字串項是字串 "CMD " 且沒有副檔名或路徑指
示,則 "CMD" 會被 COMSPEC 環境變數的值所取代。這會避免由目前目錄中
選擇 CMD.EXE
當執行一個命令列時,其中第一個字串項不包含副檔名時,則 CMD.EXE 使用
PATHEXT 環境變數的值來決定尋找哪個副檔名及用什麼順序來尋找。PATHEXT
變數的預設值為:
.COM;.EXE;.BAT;.CMD
請注意這個語法和 PATH 變數相同,且用分號來隔開不同的項目。
當尋找執行檔時,若是任何副檔名都不符合,則會試著尋找是否有符合的目錄名稱。
如果有的話,START 命令會在那個路徑執行檔案管理員。若是從命令列執行,這就相
當於執行 CD /D 到那個路徑。
參考:
Hide Command Window of .BAT file that Executes Another .EXE File
Start a specified program or command in a separate window.