函数中的局部变量可用于避免名称冲突,并将变量更改保持在函数本地,首先使用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
参考链接
https://www.learnfk.com/batch-script/batch-script-local-variables-functions.html
标签:ENDLOCAL,Functions,set,Outer,函数,Variables,无涯,echo,str From: https://blog.51cto.com/u_14033984/8285256