一、变量的定义赋值

1、基本介绍
SET 【变量名】=【变量值】
  1. 等号两边不能有空格

  2. 如果变量值本身不包含特殊字符,那么,不需要引号包围

2、演示
@echo off

SET name=John
SET "path=C:\Program Files"

pause

二、变量的引用

1、基本介绍
  • 通过 %【变量名】% 来引用变量
2、演示
@echo off

SET name=John
SET "path=C:\Program Files"
echo %name%
echo %path%

pause
# 输出结果

John
C:\Program Files

三、延迟变量扩展

1、基本介绍
  1. 在代码块(例如,if、for)中使用变量时,需要延迟变量扩展

  2. 延迟变量扩展在 setlocal enabledelayedexpansionendlocal 之间有效

2、演示
@echo off

SET var1=var1 initial
(
  SET var1=var1 new
  ECHO %var1%
)

setlocal enabledelayedexpansion
SET var2=var2 initial
(
  SET var2=var2 new
  ECHO !var2!
)
endlocal

pause
# 输出结果

var1 initial
var2 new
@echo off

SET var1=var1 initial
(
  SET var1=var1 new
  ECHO %var1%
)

setlocal enabledelayedexpansion
SET var2=var2 initial
(
  SET var2=var2 new
  ECHO %var2%
)
endlocal

SET var3=var3 initial
(
  SET var3=var3 new
  ECHO !var3!
)

setlocal enabledelayedexpansion
SET var4=var4 initial
(
  SET var4=var4 new
  ECHO !var4!
)
endlocal

pause
# 输出结果

var1 initial
var2 initial
!var3!
var4 new
@echo off

setlocal enabledelayedexpansion
SET var1=var1 initial
(
  SET var1=var1 new
  ECHO !var1!
)
endlocal

SET var2=var2 initial
setlocal enabledelayedexpansion
(
  SET var2=var2 new
  ECHO !var2!
)
endlocal

pause
# 输出结果

var1 new
var2 new

四、环境变量操作

1、基本介绍
  1. 查看所有环境变量
SET
  1. 查看特定环境变量
SET 【变量名】
  1. 修改特定环境变量
SET 【变量名】=【变量值】
  1. 删除特定变量
SET 【变量名】=
2、演示
@echo off

SET TEST_HOME

SET TEST_HOME=12345

SET TEST_HOME

pause
# 输出结果

TEST_HOME=123
TEST_HOME=12345
@echo off

SET TEST_HOME

SET TEST_HOME=

SET TEST_HOME

pause
# 输出结果

TEST_HOME=123
环境变量 TEST_HOME 没有定义

五、字符串操作

  1. 字符串替换
@echo off

SET str=Hello World
SET newstr=%str:World=There%
ECHO %newstr%

pause
# 输出结果

Hello There
@echo off

SET nums=123456789
ECHO %nums:~0,3%
ECHO %nums:~-3%

pause
# 输出结果

123
789

六、数值运算

  • BAT 脚本本身不支持直接数值运算,需要通过 SET /A 实现
@echo off

SET /A result1=5+3
ECHO %result1%

SET result2=5
SET /A result2+=4
ECHO %result2%

SET result3=5
SET /A result3=result3+5
ECHO %result3%

pause
# 输出结果

8
9
10

七、特殊变量

1、基本介绍
变量说明
%0当前脚本文件名
%1 ~ %9脚本参数
%*所有参数
%CD%当前目录
%DATE%当前日期
%TIME%当前时间
%RANDOM%随机数
2、演示
@echo off

echo %0
echo %1
echo %*
echo %CD%
echo %DATE%
echo %TIME%
echo %RANDOM%

pause
# 输出结果

PS D:\systemCode> .\special_variable.bat hello1 hello2
"D:\systemCode\special_variable.bat"
hello1
hello1 hello2       
D:\systemCode       
2025/05/10 周六     
14:00:35.46
16609

八、变量拼接

@echo off

SET part1=Hello
SET part2=World
SET message=%part1% %part2%
ECHO %message%

pause
# 输出结果

Hello World

九、检查变量是否定义

@echo off

set username=John
IF DEFINED username (
  ECHO username is defined
) ELSE (
  ECHO username is not defined
)

IF DEFINED password (
  ECHO password is defined  
) ELSE (
  ECHO password is not defined 
)

pause
# 输出结果

username is defined
password is not defined

十、获取用户输入

@echo off

SET /P name=input your name: 
ECHO hello %name%!

pause
# 输出结果

input your name: jack
hello jack!
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐