共用方式為


呼叫

從另一個批次程式呼叫一個批次程式,而不停止父批次程式。 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