批處理命令學習筆記——Call命令
阿新 • • 發佈:2019-01-07
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 和 PATH 可以被其他有效數值替換。%~ 語法必須被一個有效引數值終止。%~ 修定符不能跟 %* 使用。
另外,不能以與使用環境變數相同的方式使用批處理引數。不能搜尋或替換值,或檢查子字串。然而,可以將引數分配給環境變數,然後使用該環境變數。
從一個批處理程式呼叫另一個批處理程式,並且不終止父批處理程式。如果命令擴充套件被啟用,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 的輸出行。 |
另外,不能以與使用環境變數相同的方式使用批處理引數。不能搜尋或替換值,或檢查子字串。然而,可以將引數分配給環境變數,然後使用該環境變數。