批处理函数中局部变量

函数中的局部变量可以用来避免名称冲突,并保持函数本地的变量变化。 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

上一篇: 批处理函数 下一篇: 批处理文件夹操作