变量的分类
批处理的变量分为两类:
- 系统变量:由系统事先定义好,并根据事先规定好的条件,自动为其赋值。
- 用户变量:由用户根据需要自行定义。
注意,批处理中的变量是不区分类型的,比如执行set a=123后,变量a的值既可以被视为数字123,也可以被视为字符串123。
系统变量
系统变量有很多个种,包括硬件类、操作系统类、文件路径类、系统时间类等。
查看某个系统变量的值的命令为,其中name为具体的变量名,不区分大小写:
echo %name%
要查看所有的系统变量,只需要打开一个cmd窗口,输入set回车即可,而set w回车可以查看所有以w开头的系统变量(w不区分大小写)
用户变量
和系统变量不同,用户变量就像C语言中的变量,只在定义该变量的批处理程序中有效。
用户变量由set命令定义(关于set命令的具体使用,可以在cmd中输入set /?查看帮助),举几个例子:
设置名为test的变量的值为abc,并显示:
@echo off
set test=abc
echo %test%
pause
运行结果:
删除test变量(收回变量所占据的内存空间):
@echo off
set test=abc
echo %test%
if defined test (echo test=%test%) else echo test未定义
set test=
if defined test (echo %test%) else echo test未定义
pause
运行结果: