批处理 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是本地变量。


运行结果

img


2 本地变量与环境变量同名

当本地变量与环境变量同名时,不会完全覆盖环境变量。相当于两个不同的变量。

在setlocal与endlocal之间的代码,访问此名称表示本地变量;其余地方表示环境变量。

通常在某个作用域内,避免作用域内的变量与外部变量混淆,会使用本地变量。


示例代码

@ echo off

echo 1:%path%

setlocal
set path=xiaobuteach path
echo 2:%path%
endlocal

echo 3:%path% 

pause

运行结果

img