最近公司用到了点批处理的知识,顺便在这个周末,我就把批处理整体学习了下,我发现,有Linux shell编程的基础,学习windows的批处理编程特别快的。学习了批处理,针对windows系统,我们可以写一些系统的管理脚本,比如定时清理垃圾或者其他有趣的脚本。废话不多说,开始学习,首先呢,建议你对Linux命令要了解点,我的Windows系统集成了Linux的命令。
本文章所有的代码点击这里进行下载:
写在学习最前面的:工欲善其事,必先利其器。学习Linux系统的时候,我们要学会找男人,通过"man 命令"去查看命令怎么使用,当然,在Windows系统中,也有这样的功能,就是孩儿婆,我们要找孩儿婆,通过"help 命令"去查看命令怎么使用,具体使用如下图:
第一部分:批处理专用命令
Rem:程序的注释,类似于java,C语言里面的注释行
Echo是一个回显的命令,主要参数有off 和 on,一般用echo message 来显示一个特定的信息.
我们发现我们在用echo message,命令都会被回显,感觉不怎么舒服,那么,我们就要学习到下面这个:
Echo off就是关闭命令回显。
我们发现只显示了我们输出的信息,并没有将命令回显,感觉不错了吧
Goto即为跳转的意思,在批处理中允许使用“:xxx”来构建一个标号,然后通过goto :标号直接执行标号后面的内容
Call:在批处理过程中调用另外一个批处理,比如A批处理调用B批处理,当B批处理执行完了,接着执行A未执行完的批处理。
Pause:停止系统,显示“按任意键继续”…
If:
If 条件判断语句,语法格式如下
IF [NOT] ERRORLEVEL number command 判断命令返回值的大小然后执行命令
IF [NOT] string1==string2 command 判断两个字符串是否相等
IF [NOT] EXIST filename command 判断文件是否存在
具体使用方法如下:
IF [NOT] ERRORLEVEL number command 判断命令返回值的大小然后执行命令
IF [NOT] string1==string2 command 判断两个字符串是否相等
IF [NOT] EXIST filename command 判断文件是否存在
Setlocal:在执行setlocal之后,所做的环境改动只限于批处理文件。要还原原先的设置,必须执行ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个尚未被执行的SETLOCAL命令,都会有一个隐含的ENDLOCAL被执行。
Shift:该命令可以让命令的参数可以使用超过10个(%0~%9)以上的可替代参数例.
第二部分:批处理特殊符号使用
1:符号@
@在批处理中的意思是关闭显示当前行的回显。我们从上面知道用命令echo off可以关掉整个批处理的命令回显却不能不显示echo off这个命令。现在我们在这个命令前加上@符号,就能关闭echo off这一行显示
2:符号>
>的意思是传递并覆盖。它所起的作用是将运行后的回显结果传递到后面的范围。
3:符号>>
>>与>相似,但是>>是传递并在文件末尾追加
4:符号 |
|是管道传输命令意思是将上一命令去处理。
5:符号^
^是特殊符号>,<,&的前导符号。在命令中,使用^在这些特殊符号前,可以去掉特殊符号的作用仅仅把它们作为普通的符号使用。
6:符号&
&符号允许在一行中使用2个以上不同的命令,当地一个命令执行失败将不影响第二个命令的执行。
7:符号(&&)
&&符号允许一行多个命令,但是如果第一个命令执行失败,后面的命令将不会执行。
8:符号” ”
“ ”符号允许字符串中包含空格。进入一个特殊的目录,可以有如下方法:
9:符号(,)
,号相当于空格。在某些特殊情况下可以用,来代替空格。
10:符号(;)
当命令相同时,可以将不同的目标用;号隔开。
第三部分:批处理的变量
批处理每次能处理的变量从%0~%9共10个。其中%0是默认给批处理的文件名使用。
系统是如何区分每个变量呢?系统区分变量的跪着为字串串中间的空格,只要发现空格就把前面的字符串做为一个变量,空格后面的做为一个变量,如果你的变量中有空格,一定要用“”号括起来。
在一个复杂的批处理中有可能同时使用超过10个的变量,那么怎么办呢?在系统中还有一种变量称为环境变量(使用set命令可以查看当前系统的环境变量)。比如我们要新建一个变量,那么我们就用set 变量 = 值。调用变量的值的时候,要%变量%这样来调用。
本人忙了好久终于把大致的批处理的知识都给罗列了出来,还有点不完善,后续慢慢更新,歇笔,休息下。
文章的脚注信息由WordPress的wp-posturl插件自动生成