函式是組織在一起執行特定任務的一組語句。 在批次處理指令碼中,採用類似的方法將邏輯語句組合在一起形成一個函式。
像其他語言一樣,批次處理指令碼中的函式也遵循相同的程式規則 -
在批次處理指令碼中,通過使用標籤語句來定義函式。 當一個函式被重新定義時,它可能會將一個或多個值作為函式的輸入「引數」,並在函式的主體中處理,並將值作為輸出「返回型別」傳回給函式。
每個函式都有一個函式名稱,它描述了函式執行的任務。 要使用一個函式,需要用它的名稱來「呼叫」這個函式,並傳遞與函式引數型別相匹配的輸入值(稱為引數)。
以下是一個簡單函式的語法。
:function_name
Do_something
EXIT /B 0
其中,
function_name
是賦予函式的名字,它應該與函式的實際功能相匹配。EXIT
語句用於確保函式正常退出。以下是一個簡單函式的例子。
:Display
SET /A index=2
echo The value of index is %index%
EXIT /B 0
常見的函式使用,如下列表所示 -
編號 | 函式 | 描述 |
---|---|---|
1 | 呼叫函式 | 在批次處理指令碼中如何使用call 命令呼叫一個函式 |
2 | 帶引數的函式 | 當函式呼叫時,函式可以通過傳遞引數來處理引數。 |
3 | 具有返回值的函式 | 函式可以通過傳遞變數名稱來處理返回值 |
4 | 函式中的區域性變數 | 函式中的區域性變數可以用來避免名稱衝突,並保持函式原生的變數變化。 |
5 | 遞回函式 | 通過在函式中保持區域性變數的變化並且對呼叫者不可見,完全封裝函式主體的能力。 |
6 | 檔案I/O | 在批次處理指令碼中,可以執行任何程式設計語言中預期的正常檔案I/O操作。 |
7 | 建立檔案 | 新檔案的建立是通過重定向過濾器> 來完成的。 此過濾器可用於將任何輸出重定向到檔案。 |
8 | 寫入檔案 | 內容寫入檔案也是借助於重定向過濾器來完成的。 此過濾器可用於將任何輸出重定向到檔案。 |
9 | 附加到檔案 | 內容寫入檔案也是在雙重定向過濾器的幫助下完成的。 此過濾器可用於將任何輸出附加到檔案。 |
10 | 從檔案讀取 | 在批次處理指令碼中讀取檔案是通過使用FOR 迴圈命令來完成檔案中需要讀取的每一行。 |
11 | 刪除檔案 | 要刪除檔案,批次處理指令碼提供了DEL 命令。 |
12 | 重新命名檔案 | 要重新命名檔案,批次處理指令碼提供了REN 或RENAME 命令。 |
13 | 移動檔案 | 要移動檔案,批次處理指令碼提供MOVE 命令。 |
14 | 批次處理檔案-管道 | 管道運算子(豎線)將一個命令的輸出(預設為STDOUT )引導到另一個命令的輸入(預設為STDIN )。 |
15 | 批次處理檔案-輸入 | 批次處理檔案執行時,可以選擇傳遞命令列引數,然後在程式中讀取這些引數以進一步處理。 |
16 | 使用SHIFT運算子 | 命令列引數的一個限制是它只能接受直到%9 的引數。 |
17 | 檔案夾操作 | 在批次處理指令碼中,可以使用任何程式設計語言執行普通的基於檔案夾的操作。 |
18 | 建立檔案夾 | 建立一個檔案夾是在MD (建立目錄)命令的幫助下完成的。 |
19 | 列出檔案夾內容 | 檔案夾內容的列表可以用dir 命令完成。 該命令用來檢視當前目錄中的可用檔案和目錄。 |
20 | 刪除檔案夾 | 要刪除檔案夾,可使用批次處理指令碼提供的DEL 命令。 |
21 | 重新命名檔案夾 | 對於重新命名檔案夾,批次處理指令碼使用REN 或RENAME 命令。 |
22 | 移動檔案夾 | 對於移動檔案夾,批次處理指令碼提供MOVE 命令。 |