Windows批处理简介

一、什么是批处理 

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。目前比较常见 
的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批量 
处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本 
。这里要讲的就是DOS批处理。
批处理是一种简化的脚本语言,它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命 
令解释器(通常是COMMAND.COM或者CMD.EXE)解释运行。类似于Unix中的Shell脚本。批处理文件具有.bat 
或者.cmd的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。更复杂的情况,需要使 
用if,for,goto等命令控制程序的运行过程,如同C,Basic等高级语言一样。如果需要实现更复杂的应用 
,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。
批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑 
或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。在“命令提示”下键入批处理文件的名 
称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。
一般情况下,每条命令占据一行;当然也可以将多条命令用特定符号(如:&、&&、|、||等)分隔后 
写入同一行中;还有的情况就是像if、for等较高级的命令则要占据几行甚至几十几百行的空间。系统在解 
释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至 
程序结尾或遇见exit命令或出错意外退出。

 二、简单批处理命令简介

【 echo 命令 】 
打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 
语法 
echo [{on|off}] [message] 
Sample:@echo off / echo hello world 
在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一 
些命令到特定的文件中。

【 rem 命令 】
注释命令,类似于在C语言中的,它并不会被执行,只是起一个注释的作用,便于别人阅读 
和你自己日后修改。 
Rem Message 
Sample:@Rem Here is the description. 

【 pause 命令 】
暂停命令。运行 Pause 命令时,将显示下面的消息:
Press any key to continue. . .(或:请按任意键继续. . .)
Sample: 
@echo off 
:begin 
copy G:*.* d:/back 
echo 请插入另一张光盘...
pause 
goto begin 
在这个例子中,驱动器 G 中磁盘上的所有文件均复制到d:/back中。显示的注释提示您将另一张光盘 
盘放入驱动器 G 时,pause 命令会使程序挂起,以便您更换光盘,然后按任意键继续处理。

【 call 命令 】
从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的 
标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。 
语法 
call [[Drive:][Path] FileName ] [:label [arguments]] 
参数 
[Drive:}[Path] FileName 
指定要调用的批处理程序的位置和名称。

【 start 命令 】
调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
如:start calc.exe 即可打开Windows的计算器。
常用参数: 
MIN 开始时窗口最小化 
SEPARATE 在分开的空间内开始 16 位 Windows 程序 
HIGH 在 HIGH 优先级类别开始应用程序 
REALTIME 在 REALTIME 优先级类别开始应用程序 
WAIT 启动应用程序并等候它结束 
parameters 这些为传送到命令/程序的参数 
执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令 
脚本内执行,该新行为则不会发生。

【 goto 命令 】
跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。 
语法:goto label (label是参数,指定所要转向的批处理程序中的行。) 
Sample: 
if {%1}=={} goto noparms 
if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释 
。) 
@Rem check parameters if null show usage 
:noparms 
echo Usage: monitor.bat ServerIP PortNumber 
goto end 
标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto 
命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。

【 set 命令 】
显示、设置或删除变量。
显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。
设置变量:set aa=abcd 此句命令便可向变量aa赋值abcd。如果变量aa已被定义,则aa的值被修改为abcd;若aa尚未定义,则此句命令即可定义新的变量aa,同时为变量aa赋予初始值abcd。
删除变量:set aa= 此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令为实质意义。
需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。
set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章