批处理 setlocal 本地变量
setlocal与endlocal一起使用,用于声明本地变量。
setlocal与endlocal中间声明的本地变量仅能在它们中间使用,endlocal结束后,本地变量会被删除,将无法访问。
1 基本使用
示例代码
@ echo off
set x1=xiaobuteach1
setlocal
set x2=xiaobuteach2
echo 1:%x1%
echo 1:%x2%
endlocal
echo 2:%x1%
echo 2:%x2%
pause
其中x2是本地变量。
运行结果
2 本地变量与环境变量同名
当本地变量与环境变量同名时,不会完全覆盖环境变量。相当于两个不同的变量。
在setlocal与endlocal之间的代码,访问此名称表示本地变量;其余地方表示环境变量。
通常在某个作用域内,避免作用域内的变量与外部变量混淆,会使用本地变量。
示例代码
@ echo off
echo 1:%path%
setlocal
set path=xiaobuteach path
echo 2:%path%
endlocal
echo 3:%path%
pause
运行结果