1. 程式人生 > >批處理命令學習筆記——Call命令

批處理命令學習筆記——Call命令

Call 命令

從一個批處理程式呼叫另一個批處理程式,並且不終止父批處理程式。如果命令擴充套件被啟用,call命令接受用作呼叫目標的標籤。如果在指令碼或批處理檔案外使用Call,它將不會在命令列起作用。

語法: call [[Drive:][Path] FileName [BatchParameters]] | [:label [arguments]] 引數 [Drive:}[Path] FileName 指定要呼叫的批處理程式的位置和名稱。filename引數必須具有 .bat、.cmd 或者 .exe 副檔名。BatchParameters指定批處理程式所需的命令列資訊。

當使用標籤作為呼叫目標時,一個新的批檔案上下文由指定的引數所建立,控制在卷標被指定後傳遞到語句。您必須通過達到批指令碼檔案末兩次來 "exit" 兩次。第一次讀到檔案末時,控制會回到 CALL 語句的緊後面。第二次會退出批指令碼。鍵入 GOTO /?,參看 GOTO : EOF 副檔名的描述,此描述允許您從一個批指令碼返回。

另外,批指令碼文字引數參照(%0、%1、等等)已如下改變:

批腳本里的 %* 指出所有的引數(如 %1 %2 %3 %4 %5 ...,注意不含 %0
),它也是唯一可代表在批處理檔案中傳遞的所有引數的編輯符。

批引數(%n)的替代已被增強。您可以使用以下語法:
%~1 刪除引號("),擴充 %1
%~f1 將 %1 擴充到一個完全合格的路徑名
%~d1 僅將 %1 擴充到一個驅動器號
%~p1 僅將 %1 擴充到一個路徑
%~n1 僅將 %1 擴充到一個檔名
%~x1 僅將 %1 擴充到一個副檔名
%~s1 擴充的路徑指含有短名
%~a1 將 %1 擴充到檔案屬性
%~t1 將 %1 擴充到檔案的日期/時間
%~z1 將 %1 擴充到檔案的大小
%~$PATH:1 查詢列在 PATH 環境變數的目錄,並將 %1擴充到找到的第一個完全合格的名稱。如果環境變數名未被定義,或者沒有找到檔案,此組合鍵會擴充到空字串
可以組合修定符來取得多重結果:
%~dp1 只將 %1 擴充套件到驅動器號和路徑
%~nx1 只將 %1 擴充套件到檔名和副檔名
%~dp$PATH:1 在列在 PATH 環境變數中的目錄裡查詢 %1,並擴充套件到找到的第一個檔案的驅動器號和路徑。
%~ftza1 將 %1 擴充套件到類似 DIR 的輸出行。
在上面的例子中,%1 和 PATH 可以被其他有效數值替換。%~ 語法必須被一個有效引數值終止。%~ 修定符不能跟 %* 使用。

另外,不能以與使用環境變數相同的方式使用批處理引數。不能搜尋或替換值,或檢查子字串。然而,可以將引數分配給環境變數,然後使用該環境變數。