在编写 Windows 批处理脚本时,set 是最基础也最常用的命令之一。很多新手容易忽略它的细节,导致变量赋值或计算出错。今天简单梳理一下它的关键用法和注意事项。
变量定义与操作
@echo off
set msg="Hello World"
set type=batch
echo %msg%
注意变量名和值之间不要随意加空格,虽然某些版本允许,但规范写法建议紧凑些。查询变量直接写 set 变量名,删除则赋空值 set 变量名=。
算术运算
@echo off
set /a sum=0
echo Current sum: %sum%
set /a sum=sum+1
echo Updated sum: %sum%
这里必须带上 /a 参数才能进行数学运算。如果漏掉,系统会把它当成字符串拼接,结果往往不符合预期。用完临时变量记得清理,避免污染后续逻辑。
作用域控制
@echo off
setlocal
set temp_var=123
echo Inside local: %temp_var%
endlocal
echo Outside local: %temp_var%
setlocal 开启局部作用域,配合 endlocal 使用。在这个范围内修改的环境变量不会影响外部,适合做临时测试或防止全局污染。

