今天看见实验室前几届师兄留下批处理程序发现自己写的好low。跑过程序都需要重复写几十行,而师兄用两个for循环就搞定了。今天就好好学习一下常用的批处理命令,提高一下效率 。
为方便起见,按照c的注释风格来解释各个命令的意思,
1.echo off
表示在此语句后所有运行的命令都不显示命令行中的内容本身。也就是从你输入echo off语句后开始,就不会再显示你命令行中输入的命令了。
2.echo on
表示显示命令行的输入。
3.@ xxxx
:
与echo off很像,但是@是加在每行命令的最前边,只能不让这条命令显示
4.echo
“echo”英文为回声的意思,单独输入echo,则会返回当前的状态:打开(echo on)或关闭(echo off)
5.echo this is a comments
这条命令行意思是显示字符串this is a comments ,这个功能和cout有点像。
6.rem 这一行是注释
rem用来表示注释,需要单独起一行,rem后边都是注释内容。
7.::
这个也可以用来表示注释,在批处理中作用和rem一样的。
8.pause
用来暂停并保持窗口,如果没有这个pause,程序跑完后窗口就会一闪而过。
9.goto和:
goto是跳转命令,而‘:’是一个标签,程序云顶到goto语句时就会跳转到:标签定义的部分执行。
10.if else
举例说明:
@echo off
set var=123
if defined var (echo var=%var% ) else echo undefined!
如果代码按照上边写,输出为:
var=123
如果代码写成:
@echo off
set var=123
set var= //这样的话,var的空间又被收回了,等于没有定义var这个变量
if defined var (echo var=%var% ) else echo var undefined!//变量用defined
if exist test.txt echo 当前文件夹存在test.txt文件//文件用exist
输出为:
var undefined !
注意:set var= 这个空赋值可以取消赋值,收回变量占据的内存空间。
11.for语句
for语句可以实现类似C语言里边的for循环。通过不同的组合有不同实现方式。
11.1 无开关型
无开关的for语句在设定的范围内进行循环,是最基本的循环方式。格式如下:
for %%variable in (set) do command
其中%%variable是批处理程序中的书写格式,在DOS中是写成%variable(只有一个%);set是我们要设定的循环范围,类似c语言中的循环变量,它应该包含多个值。