windows批处理中set命令的用法详解
作者:微小冷
基础模式
变量是一切编程的基础,在批处理语言中,通过set设置变量,而在调用变量时,需要在变量两端加上百分号,例如
set a=1 echo %a%
运行结果为
>set a=1
>echo 1
在运行批处理文件的时候,命令行会默认把每一行代码都展示出来,如果想隐藏代码,可以在这一行代码前面加上@,或者直接在批处理代码最前面加上echo off,以关闭回显。
set除了可以设置变量之外,还可以删除变量,只需set a= 后面不跟任何东西,那么a变量就会被删除。
@set a=1 @set a= @echo %a%
这回的运行结果如下
>test.bat
ECHO 处于打开状态。
由于每行代码前面都填上了@,所以也就没有回显。同时a变成了空值,所以echo %a%也就等价于echo,从而返回一个echo状态。
表达式模式
除了基础用法之外,set还有两个开关,分别是/a和/p,前者用于识别数值表达式,后者则用于外部输入。
举个例子
>set /a (1+2)*3/4 2
可见命令行的确识别了set /a后面的表达式,并且还给算出了结果。但这里也能看出命令行的一个问题,即只有整型计算,故而9/4=2。
下表按照优先级顺序列出了set支持的运算符。
类别 | |
---|---|
() | 分组 |
~ - | 一元运算符 |
* / % | 算数运算符 |
+ - | 算数运算符 |
<< >> | 逻辑移位 |
& | 按位与 |
^ | 按位异或 |
| | 按位或 |
= *= /= %= += - &= ^= |= <<= >>= | 赋值 |
, | 表达式分隔符 |
这个表本来是平平无奇的,但最后面有一个表达式分隔符,让人感觉十分困惑,这东西是干嘛的?这东西可以让set /a识别多条语句
>set /a pi=3, a=2*pi*15, b=pi*15*15 675 >echo %a% 90 >echo %pi% 3
变量输入模式
开关/p可以起到读取输入值的作用,例如下面这组代码
echo off set /p a=please input your value echo you input %a%
运行结果如下
>echo off
please input your value 12345
you input 12345
环境变量
环境变量可以理解为绝对路径的一种映射,从而可以在任意位置引用。添加或删除环境变量,可以右键此电脑->属性->高级系统设置->高级选项卡->环境变量,然后就弹出环境变量的设置窗口了,最常用的是设置Path中的路径。
在命令行中,输入set命令,即可查看当前所有可用的环境变量,如果set后加上变量名,则可查看其对应的值。
>set TEMP TEMP=C:\Users\Laser\AppData\Local\Temp
这是Windows中用于存放临时数据的环境变量。
此外,我们刚刚在命令行中创建的变量,也可归入到环境变量范畴,只不过这个变量是临时的,退出命令行就会消失而已。
>set a a=12345 ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\Laser\AppData\Roaming
到此这篇关于windows批处理中set命令的用法详解的文章就介绍到这了,更多相关批处理set命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!