Extreme Thinking
bat批次執行

2018-07-02


批次檔遇到不執行

用 START /B …….

其實有時比較懶我會用 vbscript …….

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE ] [/AFFINITY ] [/WAIT] [/B]
[command/program] [parameters]

"title"     要在視窗標題列顯示的標題。
path        開始目錄。
B           啟動應用程式但不建立新視窗。應用程式會略過 ^C 處理。除非應用
            程式啟用 ^C 處理,否則 ^Break 是唯一可以中斷應用程式的方法。
I           新環境將會是傳遞給 cmd.exe 的原始環境,而不是目前的環境。
MIN         啟動時讓視窗最小化。
MAX         啟動時讓視窗最大化。
SEPARATE    在不同的記憶體空間啟動 16 位元 Windows 程式。
SHARED      在共用的記憶體空間啟動 16 位元 Windows 程式。
LOW         在 IDLE 優先順序類別中啟動應用程式。
NORMAL      在 NORMAL 優先順序類別中啟動應用程式。
HIGH        在 HIGH 優先順序類別中啟動應用程式。
REALTIME    在 REALTIME 優先順序類別中啟動應用程式。
ABOVENORMAL 在 ABOVENORMAL 優先順序類別中啟動應用程式。
BELOWNORMAL 在 BELOWNORMAL 優先順序類別中啟動應用程式。
NODE        以十進位整數指定慣用的非統一記憶體架構 (NUMA) 節點。
AFFINITY    以十六進位數字指定處理器親和性遮罩。會限制處理程序在這些
            處理器上執行。

            當合併使用 /AFFINITY 及 /NODE 時,親和性遮罩會以不同的方式
            解譯。指定親和性遮罩就如 NUMA 節點的處理器遮罩向右位移,從
            位元零的位置開始。會限制處理程序在指定的親和性遮罩及 NUMA
            節點共用的這些處理器上執行。如果沒有共用的處理器,會限制
            處理程序在指定的 NUMA 節點上執行。
WAIT        啟動應用程式並等候它終止。
command/program
            如果這是內部 cmd 命令或批次檔,命令處理程式會使用 /K 參數
            執行 cmd.exe。這表示命令執行完成之後,視窗仍會維持開啟。

            如果這不是內部 cmd 命令或批次檔,它就是一個程式,它會以
            視窗化應用程式或主控台應用程式的方式執行。

parameters 這些是傳遞給 command/program 的參數。 注意: SEPARATE 與 SHARED 選項不支援 64 位元平台。

指定 /NODE 可讓您以利用 NUMA 系統上記憶體位置的方式建立處理程序。例如,若兩個

處理程序會透過共用記憶體頻繁地與彼此通訊,則您可以建立處理程序並讓它們共用相

同的慣用 NUMA 節點,以將記憶體延遲最小化。在可能的情況下,它們會從相同的 NUMA

節點配置記憶體,而且它們可以自由地在所指定節點外部的處理器上執行。

start /NODE 1 application1.exe
start /NODE 1 application2.exe

您可以進一步限制這兩個處理程序,讓它們在相同 NUMA 節點內的特定處理器上執行。

在下列範例中,application1 會在節點的兩個低位處理器上執行,而 application2

會在節點的下兩個處理器上執行。此範例假設指定的節點至少有四個邏輯處理器。請

注意,您可以將節點數目變更為該電腦的任何有效節點數目,而不需要變更親和性

遮罩。

start /NODE 1 /AFFINITY 0x3 application1.exe
start /NODE 1 /AFFINITY 0xc application2.exe

如果您啟用擴充命令,經由命令列或 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 到那個路徑。