无涯教程-批处理 - Local Variables in Functions函数

89 阅读1分钟

函数中的局部变量可用于避免名称冲突,并将变量更改保持在函数本地,首先使用SETLOCAL命令来确保命令处理器备份所有环境变量,可以通过调用ENDLOCAL命令来恢复变量,当到达批处理文件的末尾时,即通过调用GOTO:EOF,将自动调用ENDLOCAL

使用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

参考链接

www.learnfk.com/batch-scrip…