批處理指令碼 - 函式中的區域性變數



函式中可使用區域性變數來避免名稱衝突,並使變數更改保持在該函式的區域性範圍內。首先使用 SETLOCAL 命令來確保命令處理器備份所有環境變數。可以透過呼叫 ENDLOCAL 命令來還原變數。在這兩者之間所做的任何更改均是當前批處理指令碼的區域性更改。當批處理檔案結束時,會自動呼叫 ENDLOCAL,即透過呼叫 GOTO:EOF 來進行呼叫。

透過 SETLOCAL 實現變數本地化允許使用函式中的變數名稱,而無需擔心與函式之外使用的變數的名稱衝突。

以下示例演示如何在函式中使用區域性變數。

示例

@echo off
set str = Outer
echo %str%
CALL :SetValue str
echo %str%
EXIT /B %ERRORLEVEL%
:SetValue
SETLOCAL
set str = Inner
set "%~1 = %str%"
ENDLOCAL
EXIT /B 0

輸出

在上述程式中,區域性變數“str”在函式 SetValue 中執行了本地化。因此,儘管 str 值被返回到主函式,但主函式中 str 的值不會被函式返回的值所替換。

上述命令會產生以下輸出。

Outer
Outer
batch_script_functions.htm
廣告
© . All rights reserved.