從另一個批次程式呼叫一個批次程式,而不停止父批次程式。 call 命令接受標籤作為呼叫的目標。
Note
當呼叫在腳本或批處理檔外部使用時,在命令提示字元中沒有任何作用。
Syntax
call [drive:][path]<filename> [<batchparameters>]]
call [:<label> [<arguments>]]
Parameters
| Parameter | Description |
|---|---|
[<drive>:][<path>]<filename> |
指定您想要呼叫之批次程式的位置和名稱。 參數 <filename> 是必要的,而且必須具有 .bat 或.cmd延伸模組。 |
<batchparameters> |
指定批次程式所需的任何命令行資訊。 |
:<label> |
指定您想要批次程式控制件跳至的標籤。 |
<arguments> |
指定要從 開始 :<label>傳遞至批次程式之新實例的命令行資訊。 |
| /? | 在命令提示字元顯示說明。 |
Batch parameters
下表列出批次指令碼引數參照 (%0, %1, ...)。
在批次指令碼中使用值 %* 會參照所有引數 (例如, %1、 %2、 %3...)。
您可以使用下列選用語法作為批次引數的替代 (%n:
| Batch Parameter | Description |
|---|---|
| %~1 | 展開 %1 並移除周圍的引號。 |
| %~f1 | 將 %1 擴展為完全合格的路徑。 |
| %~d1 | 將 %1 展開為僅磁碟機代號。 |
| %~p1 | 僅將 %1 展開至路徑。 |
| %~n1 | %1 展開至僅檔案名稱。 |
| %~x1 | 將 %1 展開為僅副檔名。 |
| %~s1 | 將 %1 展開至僅包含短名稱的完整路徑。 |
| %~a1 | 將 %1 展開至檔案屬性。 |
| %~t1 | 將 %1 展開至檔案的日期和時間。 |
| %~z1 | 將 %1 展開至檔案的大小。 |
| %~$PATH:1 | 搜尋 PATH 環境變數中列出的目錄,並將 %1 展開至找到的第一個目錄的完整名稱。 如果未定義環境變數名稱,或搜尋找不到檔案,則此修飾詞會展開為空字串。 |
下表顯示如何將修飾詞與復合結果的批次參數結合:
| Batch 參數與修飾詞 | Description |
|---|---|
| %~dp1 | 將 %1 展開為僅磁碟機代號和路徑。 |
| %~nx1 | 將 %1 展開至僅檔案名稱和副檔名。 |
| %~dp$PATH:1 | 在 PATH 環境變數中列出的目錄中搜尋 %1,然後展開至找到的第一個目錄的磁碟機代號和路徑。 |
| %~ftza1 | 展開 %1 以顯示與 dir 指令類似的輸出。 |
在上述範例中, %1 和PATH可以替換為其他有效值。 語法 %~ 會以有效的自變數編號終止。 %~修飾詞不能與 搭配%*使用。
Remarks
使用批次參數:
批次參數可以包含您可以傳遞至批次程式的任何資訊,包括指令行選項、檔名、 %0 到 %9的批次參數,以及變數 (例如, %baud%)。
<label>使用 參數:透過搭配參數使用
<label>call,您可以建立新的批次檔內容,並將控制權傳遞至指定標籤之後的陳述式。 第一次遇到批次檔案結尾時(即跳到標籤後),控制權會回到 call 語句之後的語句。 第二次遇到批處理文件結尾時,就會結束批次腳本。使用管道與重新導向符號:
請勿在呼叫中使用管道
(|)或重新導向符號 (<或 )。>進行遞歸呼叫
您可以建立呼叫本身的批次程式。 不過,您必須提供結束條件。 否則,父代和子批次程式可以無休止地迴圈。
使用命令延伸模組
如果啟用了命令分機,則 呼叫 接受作為
<label>呼叫的目標。 正確的語法為call :<label> <arguments>。
Examples
若要從另一個批次程式執行 checknew.bat 程式,請在父批次程式中輸入下列命令:
call checknew
如果父批次程式接受兩個批次參數,而且您想要將這些參數傳遞至 checknew.bat,請在父批次程式中輸入下列命令:
call checknew %1 %2