分类
批处理中变量分为两种:自定义变量和系统变量
系统变量
介绍: 系统变量是由系统将其根据事先定义的条件自动赋值,也就是这些变量系统已经给他们定义了值,
不要要我们给它们赋值,我们只需要调用即可
列举一些常见的系统变量:
%CD% - 扩展到当前目录字符串
%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期
%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间
另外,还有一个系统变量,代表一个意思,分别为%0,%1...%9,还有一个%*
实例:
先进入脚本工作目录: cd scriptPath
输入脚本名后面跟参数值 scriptName parameter_1 [parameter_n]
脚本代码:
@echo off
rem 处理批处理参数
echo 第一个参数:%1
echo 第二个参数:%2
echo 第三个参数:%3
pause
结果:
备注: %*的作用是返回全部参数的值,不用在输入%1,%2…
自定义变量
介绍: 自定义变量就是由我们来给它们赋值的变量,要使用自定义变量就得使用set关键值
基本格式:
SET [opetions] [variable=[string]]
variable 指定环境变量名
string 指定要指派给变量的一系列字符串
opetions 可选参数,分别由"/p",''/a"两个可选参数
备注: 可选参数解析
1. SET /p [变量名=[键盘输入的值]]
2. SET /a [变量名=[可作数自增计算]]
实例:
@echo off
rem 自定义变量赋值
echo 普通的变量赋值
set var1=“hello word”
echo 变量的值: %var1%
echo.
echo 可选参数/p赋值
set /p var2=请输入你想输入的值
echo 变量的值: %var2%
echo.
echo 可选参数/a赋值
set var3=0
for /l %%i in (1, 1, 5) do (
set /a var3 += 1
)
echo 变量的值:%var3%
pause
结果:
从输出结果可以看出,set/p可以将键盘输入赋给变量,set/a可以支持变量做自增运算
/a参数除了支持自增运算,还支持以下运算
() - 分组
! ~ - - 一元运算符
* / % - 算数运算符
+ - - 算数运算符
<< >> - 逻辑移位
& - 按位“与”
^ - 按位“异”
| - 按位“或”
= *= /= %= += -= - 赋值
&= ^= |= <<= >>= , - 表达式分隔符