Board logo

標題: [分享] BAT批次指令: CALL 的功能介紹 [打印本頁]

作者: a448488    時間: 2013-8-16 10:08     標題: BAT批次指令: CALL 的功能介紹

BAT批次指令: CALL 的功能介紹

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 可被其他有效值取代。%~ 語法是以正確的引數數字作結尾。
    %~ 修正程式可能無法使用 %*
作者: ML089    時間: 2013-8-16 12:25

如能有範例會更好




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)