bat编程基础(三)

来源:互联网 发布:微软的安全软件 编辑:程序博客网 时间:2024/05/16 10:34

  1)使用bat,在cmd中输出“Hello world”,代码如下:

@echo offrem echo hello worldecho Hello world!pause > nul 

效果如下:

其中,“rem echo hello word ”表示注释和说明

2.set——变量管理

   变量,一般的编程语言中都存在这个名称,它表示一个可变的量,可以在程序中寄存一个数据项,并在其他的地方引用。从批处理支持的数据类型来看,批处理脚本中变量的类型应该有字符串和数值两种。讲到变量,就得提提变量的名称了,批处理脚本中对变量的名称没有做任何规定,可以是任意符号或字符串,当然也可以是数值,所以说批处理脚本是比较弱智的。

   批处理中的变量主要使用“set”命令来维护和管理,而在批处理中的变量也称为环境变量。批处理规定的“set”命令用法比较多,主要有以下四种用法。

1.“set”命令查看变量

   “set”命令可以用于查看变量信息,它返回的是所有符合的变量列表,格式为“变量名=值”。用法比较简单,如下:

set [变量名前缀]

这里“变量名前缀”的意思是指“set”命令会在所有变量中进行查找,如果某个变量名的前缀(从第一个字符开始到第N个字符)与所给定的变量字符串相匹配则将改变了视为要查找的变量,是一种前缀查找方式。当没有指定任何变量前缀时则列出所有的变量列表。

2.“set”命令管理字符串变量

   “set”命令可以实现字符串变量的定义和删除等操作。用法比较简单,如下:

set 变量名=[值]

这里使用了一个“=”紧跟在变量名称后,表示定义一个变量并进行赋值,这里如果把“=”省略了则变为查看变量命令了。因此当需要定义变量的时候不可缺少“=”,“值”是可选项,当存在时则表示给当前变量赋值;如果不存在则表示删除当前变量,也就似乎给变量赋空值。可以参考下面的例子:

1
2
3
4
5
6
@echo off
set var=abc
echo var=%var%
set var=
echo var=%var%
pause > nul

保存为批处理文件并执行,输出的内容为:

var=abc

var=

当给指定变量赋空值时表示移除该变量。

3.“set”命令管理数值变量和运算

   “set”命令不仅可以管理字符串变量,同样可以管理数值类型的变量。批处理中使用“set /a”命令来实现数值的运算操作,“/a”是“set”的一个选项,表示其后的字符将被作为数值和算术操作符进行处理,如果不是数值将提示错误。用法如下:

set /a 数值表达式

这里的“数值表达式”不是一个固定的值,而是一种由数字和符号组成的任何一种算术表达式。表达式可以包含前面介绍的任意一种或多种“数值类型符号”,具体符号可以参考具体说明。例如,“set /a result=123+345”,则表示将“123+345”的计算结果赋值给“result”变量;而“set /a 123+345”在表示计算“123+345”的结果;同时还支持简单的位运算等,支持“()”优选运算,支持“,”多个表达式同时运算等特点。例如:

1
2
3
4
5
6
7
@echo off
set /a a=1,b=2
set /a result=%a%+%b%
set result1=%a%+%b%
echo 算术运算:%a%+%b%=%result%
echo 字符串:%a%+%b%=%result1%
pause > nul

保存为批处理文件并执行,输出的内容为:

算术运算:1+2=3

字符串:1+2=1+2

从例子可以看出,如果要进行数值运算,必须使用“set”命令的“/a”选项来标明。

4.“set”命令实现控制台输入

   下面来介绍“set”命令的另一个扩展功能,从控制台或其他设备或文件将信息读取一行字符串并赋值给指定的变量。使用“/p”选项来启用这个功能,用到的较多的地方就是读取从控制台输入的字符串。当解释器执行到“set /p”命令时会等待用户的输入完成,一般使用回车键表示输入完成;在输入过程中可以使用“CTRL+C”快捷键强制退出输入状态。用法如下:

set /p 变量名=[值]

只是在定义字符串变量的操作之前加上了“/p”选项,其中“/p”选项表示将启用控制台输入功能,并将输入的内容赋值给“/p”后指定的变量名,注意“=”不能缺少。当然也可以赋给变量初始值,但是当输入完成后变量将被重新赋值。例如:

1
2
3
4
@echo off
set /p info=请输入内容:
echo 你输入的内容为:%info%
pause > nul

保存为批处理文件后可以自行测试。

 

0 0