1、1、批处理的概念,在DOS中有一种特殊文件,它可以将若干个DOS命令组合起来, 作为一个整体来运行,每次运行这一组命令,只需要输入一条“命 令”即可。这种命令叫“批处理”命令,其扩展名为BAT。DOS下的 可执行文件有三种,分别是EXE,COM和BAT1.EXE和COM文件都是二进制形式的。2.BAT文件是文本形式的,可以直接阅读。BAT的文件和以上二进制可执行文件相比,内容要简单的多。批 处理文件的组成虽然比较简单,但其用处非常大,使用也比较广泛。 AUTOEXEC.BAT就是一个特殊的批处理文件,它在DOS的启动时自动运 行,在系统的配置中发挥着非常大的作用。,2、 不显示后面的命令,格式
2、: 命令 说明:表示不显示后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。 例子: Sample:echo off echo Now initializing the program,please wait a minite. format X: /q/u/autoset echo off命令就在批文件首经常用到,3、Call 调用另一个批处理程序,格式:Call Drive:Path FileName BatchParameters :label arguments 说明:从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。Call 命
3、令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。 参数:(1) BatchParameters 指定批处理程序所需的任何命令行信息,包括命令行选项、文件名、批处理参数(从 %0 到 %9)或变量(例%baud%)。(2) :label指定批处理程序要跳转到的标签。使用带有该参数的call命令 可以创建新的批处理文件上下文,并将控制权交给指定标签后的语句。当首次遇到该批处理文件的末尾时(在跳转到标签后),控制权将交还给CALL语句后的语句。第二次遇到批处理文件的末尾,批脚本将被退出。对于可允许您从批处理脚本返回的 goto :eof 命令扩展。(3) a
4、rguments 对于以 :label 打头的批处理程序,指定要传送给其新实例的命令行信息,包括命令行选项、文件名、批处理参数(从 %1 到 %9)或者变量(比如 %baud%)。,4、Choice 提示选择项目,格式:Choice:/C:按键表 /N /S /T:选择值,秒数 显示文本 说明:命令执行后将提示可选择的项目,这时通过一个按键来选则。使用此命令可以让用户输入一个字符,从而运行不同的命令。 参数:其中,/C表示可选则的按键,/N表示不要显示提示信息,/S表示大小写字符敏感方式,/T表示若在批定的时间内没有选则的话,自动执行/C中定义的某个选择值。显示文本是CHOICE命令执行时的提
5、示信息。选择结果将用ERRORLEVEL值来表示。 例子:此文件运行后,将显示 defrag,mem,endD,M,E? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。,例子:choice /c:dme defrag,mem,end 将显示defrag,mem,endD,M,E?Sample: Sample.bat的内容如下 echo off choice /c:dme defrag,mem,
6、end if errorlevel 3 goto defrag (应先判断数值最高的错误码)if errorlevel 2 goto mem if errotlevel 1 goto end :defrag c:dosdefrag goto end :mem mem goto end :end echo good bye,例子,5、Echo 显示指定的信息,格式:Echo on|off message 说明:打开或关闭请求回显功能,或显示消息。如果没有任何参数,Echo 命令将显示当前回显设置。而ECHO OFF与的意思一样,但它是一个单独的命令,而不能像那样放在其它命令之前。 参数:(1)
7、on | off 指定是否打开命令回显功能。(2) message 指定要在屏幕上显示的文本。 例子:以下范例显示的批处理程序包含前后各有一个空行的三行消息: echo offecho. echo This batch program echo formats and checks echo new disks echo. 如果要关闭回显并且不需要回显echo命令,请在命令之前包含at符号(),所示:echo off 在相同命令行上可以使用 if 和echo命令,如下所示: if exist *.rpt echo The report has arrived.,6、FOR 对每个文件运行指定的
8、命令,格式:for %variable|%variable in(set) do command CommandLineOptions 说明:对一组文件中的每个文件运行指定的命令。大家知道,DOS下许多命令支持通配符,如?和*,可以一次指定一批文件,非常方便。然而,并非所有的DOS命令都支持通配符,如TYPE(文件内容显示命令)就不支持。有了FOR命令就没有关系了,利于它可以使TYPE命令可以一次显示多个文件。 参数:(1) %variable|%variable 必需。代表可替换的参数。使用 %variable 通过命令提示符执行 for 命令。使用 %variable 在批处理文件中执行
9、for 命令。变量要区分大小写,并且必须用 Alpha 值表示,例如,%A、%B 或 %C。(2) (set) 必需。指定要用指定命令处理的一个或多个文件、目录、数值范围以及文本字符串。需要括号。(3) command 必需。指定要对包括在指定 (set) 中的每个文件、目录、数值范围以及文本字符串所执行的命令。(4) CommandLineOptions 指定要通过指定命令使用的任何命令行选项。,7、GOTO 转到批文件内部的某个标号下执行,格式:GOTO 标号名 说明:编程中往往需要重复或跳转到某个地方继续执行,如BASIC语言中的GOTO命令。批文件中的GOTO命令也可以完成类似的功能。
10、在批处理程序中,将 Windows XP 导入到由标签标识的行。找到标签后,程序将处理从下一行开始的命令。 参数:label 指定所要转向的批处理程序中的行。 例子:以下批处理程序在驱动器 A 将一张磁盘格式化为系统盘。如果操作成功,则 goto 命令会将 Windows XP 导向 :end 标签:echo offformat a:/sif not errorlevel 1 goto endecho An error occurred during formatting.:endecho End of batch program.,8、IF 条件判断命令,格式:if not errorlev
11、el number command else expressionif not string1=string2 command else expressionif not exist filename command else expression 参数:(1) not 指定只有当条件为假时才执行该命令。(2) errorlevel number 只有当由 Cmd.exe 运行的前一个程序返回大于或等于 number 的退出代码时,才能指定真条件。(3) command 指定只有满足前面的条件时才应执行的命令。(4) string1=string2 只有当 string1 和 string2
12、相同时才能指定真条件。这些值可以是文字字符串或批处理变量(例如,%1)。对于文字字符串,不需要使用问号。(5) exist filename 如果 filename 存在,则指定真条件。(6) CompareOp 指定 3 个字母的比较运算符。下表列出了 compareop 的有效值。 运算符:EQU 等于,NEQ 不等于,LSS 少于LEQ 少于或等于,GTR 大于,GEQ 大于或等于,例子:如果没有找到文件 Product.dat,将会显示如下消息: if not exist product.dat echo Cant find data file 如果格式化驱动器A中的磁盘期间出现错误,
13、则下面范例将会显示错误消息: :beginecho offformat a:/sif not errorlevel 1 goto endecho An error occurred during formatting.:endecho End of batch program.如果没有出现错误,将跳过错误消息。if 命令不能用于直接测试目录,但空 (NUL) 设备确实存在于每个目录中。因此可以通过测试零设备确定目录是否存在。以下范例可测试目录的存在:if exist c:mydirnul goto process,例子,9、批命令实例,写出一个批命令,它能一次显示系统的时间和日期: 方法:确定
14、该批命令的文件名如:DATETIME.BAT;明确显示时间和日期的DOS命令TIME与DATE;将两条DOS命令加入批文件DATETIME.BAT 中。 例如C:COPY CON DATETIME.BATDATETIMEZ 注意:Z表示按住CTRL键,再按Z键,表示存盘退出,或是按F6键执行时,键入批文件名DATETIME即可。要写出批文件命令,必须要了解批处理命令和建立批处理的方法。常用COPY CON命令和EDIT来建立。,例子,例1:C:COPY CON LX1.BATCD (先执行命令CD转入根目录)DIR/W (第二步:显示根目录下文件目录名)CDUSER1 (第三步执行转入USER
15、1子目录操作)DIR/W (第四步显示子目录下的文件目录名) CD (最后返回根目录)Z 例2:C:COPY CON LX1.BATECHO OFF (符号的作用是不显示它所在的行)REM (转入根目录)CD (先执行命令CD转入根目录)DIR/W (第二步:显示根目录下文件目录名)PAUSE (下面执行转入USER1子目录操作)CDUSER1 (第三步执行转入USER1子目录操作)DIR/W (第四步显示子目录下的文件目录名)CD (最后返回根目录),例子,例3:运用ECHO命令设计如下标题:欢迎光临ECHO OFFCLSECHO -ECHO | |ECHO | 欢迎光临 |ECHO | |
16、ECHO -,10、自动批处理,在批处理文件中有一个特殊的批文件,其文件名为AUTOEXEC.BAT称为自动批 处理文件,每次启动DOS时,命令处理程序COMMAND.COM都将在启动DOS磁盘的根目 录上寻找名为AUTOEXEC.BAT的文件。当找到这一文件时,就自动执行该文件。例如:需要一开机就显示日期和时间。将DATETIME.BAT该名为AUTOEXEC.BAT并存放在启动盘的根目录下即可。例如:设置QB的批处理命令C:COPY CON AUTOEXEC.BATPATH D:; D:QBASIC;C:QBASICCD QBASICDIRQBASICZ,11、常用的批文件命令,1、COP
17、Y CON:文件名.BAT 功能:建立批处理文件 说明:CON表示用键盘作为输入设备,而屏幕作为输出设备,将源文件的内容从键盘输入。 2、REM注释命令 功能:当执行该命令后,屏幕显示注释内容。 3、PAUSE提示内容功能:暂停正在执行的批处理文件命令,并在屏幕上显示出“提示内容”。 4、ECHOON/OFF/提示内容功能:ECHO ON 表示显示正在执行的DOS命令;ECHO OFF表示不显示正在执行 的DOS命令,初始状态为ECHO ON。REM与ECHO的区别:REM后面的信息作为注释信息,在执行过程中连REN一起显示;而ECHO则定位输出信息,在执行过程中只显示信息,而不会将ECHO一起显示出来。 5、SHIFT 在批文件中改变可替换参数的位置,可替换参数是一种特殊的参数,只能用在批文件中。如执行DIR /S /W命令,其中DIR是命令名,/S和/W是它的执行参数。在批文件中,这些命令参数将被分别赋予到可替换参数中,如/S就成的%1,/W就可了%2。,