Bat脚本 变量
变量的定义与使用
使用 set 命令定义变量,使用 %变量名% 引用变量。
@echo off
:: 定义变量(等号两侧不要加空格)
set name=张三
set age=25
:: 引用变量(用 % 包围)
echo 姓名:%name%,年龄:%age%
注意:set 命令中,等号两侧不要加空格,否则空格会被计入变量值中。
变量类型
BAT 脚本中所有变量本质上都是字符串,但可以进行数值比较和算术运算。
@echo off
set num1=10
set num2=20
:: 算术运算(使用 set /a)
set /a sum=%num1% + %num2%
echo 和:%sum%
用户输入变量
使用 set /p 可以提示用户输入并赋值给变量。
@echo off
set /p name=请输入你的名字:
set /p age=请输入你的年龄:
echo 你好,%name%!你今年 %age% 岁。
变量延迟扩展
在 if 或 for 的括号代码块中修改变量时,需要使用 延迟扩展,否则变量值不会实时更新。
@echo off
:: 启用延迟扩展
setlocal enabledelayedexpansion
set count=0
for %%i in (1 2 3) do (
set /a count=!count! + 1
echo 第 !count! 次循环
)
:: 如果不启用延迟扩展,%count% 在循环内始终为初始值 0
| 引用方式 | 说明 | 适用场景 |
|---|---|---|
%var% |
普通扩展(解析时一次性替换) | 普通变量引用 |
!var! |
延迟扩展(执行时实时替换) | 循环/条件块内的变量 |