批处理脚本 - 函数中的局部变量



函数中可使用局部变量来避免名称冲突,并使变量更改保持在该函数的局部范围内。首先使用 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
广告