Windows 操作系统 - BAT 脚本变量操作(变量的定义赋值、变量的引用、延迟变量扩展、环境变量操作、字符串操作、数值运算、特殊变量、变量拼接、检查变量是否定义、获取用户输入)
·
一、变量的定义赋值
1、基本介绍
SET 【变量名】=【变量值】
-
等号两边不能有空格
-
如果变量值本身不包含特殊字符,那么,不需要引号包围
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、基本介绍
-
在代码块(例如,if、for)中使用变量时,需要延迟变量扩展
-
延迟变量扩展在
setlocal enabledelayedexpansion和endlocal之间有效
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、基本介绍
- 查看所有环境变量
SET
- 查看特定环境变量
SET 【变量名】
- 修改特定环境变量
SET 【变量名】=【变量值】
- 删除特定变量
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 没有定义
五、字符串操作
- 字符串替换
@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!
更多推荐
所有评论(0)