批處理函數中局部變數

函數中的局部變數可以用來避免名稱衝突,並保持函數本地的變數變化。 SETLOCAL命令首先用於確保命令處理器對所有環境變數進行備份。 通過調用ENDLOCAL命令可以恢復變數。 在兩者之間進行的更改是當前批處理腳本的本地處理。 當到達批處理檔結束時,即通過調用GOTO:EOFENDLOCAL被自動調用。

使用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值被返回到main函數,main函數中str的值也不會被函數返回的值替換。

以上命令產生以下輸出。

Outer
Outer

上一篇: 批處理函數 下一篇: 批處理檔夾操作