| 22 | {{{ |
| 23 | C:\Documents and Settings\Jazz>help call |
| 24 | |
| 25 | 從批次程式中呼叫另一程式。 |
| 26 | |
| 27 | CALL [drive:][path]filename [batch-parameters] |
| 28 | |
| 29 | batch-parameters 指定批次程式所需要的命令列資訊。 |
| 30 | |
| 31 | 如果您啟用擴充命令,CALL 命令的變更如下: |
| 32 | |
| 33 | CALL 命令現在可以用標籤來當作 CALL 命令的目標。語法為: |
| 34 | |
| 35 | CALL :label arguments |
| 36 | |
| 37 | 這會用指定的 arguments 來建立一個新的批次檔檔案內容,而且控制權 |
| 38 | 會被傳到指定的 label 後的敘述。您必須 "exit" 兩次,因為批次檔 |
| 39 | 的結尾會被執行兩次。第一次您讀入批次檔結尾時,控制權會回到 CALL |
| 40 | 描述的下一個敘述。而第二次則會結束批次檔的執行。請鍵入 GOTO /? |
| 41 | 來獲得 GOTO :EOF 擴充命令的描述。 這個命令可以讓您從批次檔中 |
| 42 | "return" 。 |
| 43 | |
| 44 | 此外,批次檔參數的參考 (%0, %1, |
| 45 | 及其他) 已經做了如下的擴充: |
| 46 | |
| 47 | |
| 48 | %* 在批次檔中,這代表所有的參數 (e.g. %1 %2 %3 |
| 49 | %4 %5 ...) |
| 50 | |
| 51 | 批次參數的取代 (%n) 已經做了改進。 您現在可以 |
| 52 | 選用下列的語法: |
| 53 | |
| 54 | %~1 - 展開 %1 且移除包圍的引號 (") |
| 55 | %~f1 - 展開 %1 為一個完全符合的路徑名稱 |
| 56 | %~d1 - 只展開 %1 為磁碟機代號 |
| 57 | %~p1 - 只展開 %1 為路徑 |
| 58 | %~n1 - 只展開 %1 為檔名 |
| 59 | %~x1 - 只展開 %1 為副檔名 |
| 60 | %~s1 - 展開的路徑只包含短檔名 |
| 61 | %~a1 - 展開 %1 為檔案的檔案屬性 |
| 62 | %~t1 - 展開 %1 為檔案的日期/時間 |
| 63 | %~z1 - 展開 %1 為檔案的長度 |
| 64 | %~$PATH:1 - 搜尋所有列在 PATH 環境變數內的目錄 |
| 65 | 且展開 %1 為 |
| 66 | 第一個找到的完全符合檔名。 |
| 67 | 如果沒有定義環境變數名稱 |
| 68 | 或是搜尋找不到檔案, |
| 69 | 則這個修飾元會展開成 |
| 70 | 空字串。 |
| 71 | |
| 72 | 修正程式可合併使用,進而得到複合結果: |
| 73 | |
| 74 | %~dp1 - 只擴充 %1 到磁碟機代號和路徑 |
| 75 | %~nx1 - 只擴充 %1 到檔案名稱和副檔名 |
| 76 | %~dp$PATH:1 - 搜尋 %1 的 PATH 環境 |
| 77 | 變數中所列的目錄,並擴充至 |
| 78 | 磁碟機代號和第一個找到的路徑。 |
| 79 | %~ftza1 - 將 %1 擴充成 DIR ,和輸出行相同 |
| 80 | |
| 81 | 在上例中,%1 和 PATH 可被其他有效值取代。%~ 語法是 |
| 82 | 以正確的引數數字作結尾。%~ 修正程式可能無法使用 %* |
| 83 | }}} |