BAT - 批次檔使用心得 (五)

摘要: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.