chang-pony
|
分享:
▲
▼
以下是 DOS 指令集中 CALL 的詳細解說,不知道是否合適? 從批次程式中呼叫另一程式。
CALL [drive:][path]filename [batch-parameters]
batch-parameters 指定批次程式所需要的指令行資訊。
如果您啟用擴充指令,CALL 指令的變更如下:
CALL 命令現在可以用標籤來當作 CALL 指令的目標。語法為:
CALL :label arguments
這會用指定的 arguments 來建立一個新的批次檔檔案內容,而且控制權 會被傳到指定的 label 後的敘述。您必須 "exit" 兩次,因為批次檔 的結尾會被執行兩次。第一次您讀入批次檔結尾時,控制權會回到 CALL 描述的下一個敘述。而第二次則會結束批次檔的執行。請鍵入 GOTO /? 來獲得 GOTO :EOF 擴充命令的描述。 這個命令可以讓您從批次檔中 "return" 。
此外,批次檔參數的參考 (%0, %1, 及其它) 已經做了如下的擴充:
%* 在批次檔中,這代表所有的參數 (e.g. %1 %2 %3 %4 %5 ...)
批次參數的取代 (%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 - 搜尋 %1 的 PATH 環境 變數中所列的目錄,並擴充至 磁碟機代號和第一個找到的路徑。 %~ftza1 - 將 %1 擴充成 DIR ,和輸出行相同
在上例中,%1 和 PATH 可被其他有效值取代。%~ 語法是 以正確的引數數字作結尾。%~ 修正程式可能無法使用 %*
|