您好,欢迎访问三七文档
1、批处理的概念在DOS中有一种特殊文件,它可以将若干个DOS命令组合起来,作为一个整体来运行,每次运行这一组命令,只需要输入一条“命令”即可。这种命令叫“批处理”命令,其扩展名为BAT。DOS下的可执行文件有三种,分别是EXE,COM和BAT1.EXE和COM文件都是二进制形式的。2.BAT文件是文本形式的,可以直接阅读。BAT的文件和以上二进制可执行文件相比,内容要简单的多。批处理文件的组成虽然比较简单,但其用处非常大,使用也比较广泛。AUTOEXEC.BAT就是一个特殊的批处理文件,它在DOS的启动时自动运行,在系统的配置中发挥着非常大的作用。2、@不显示后面的命令格式:@命令说明:表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。例子:Sample:@echooff@echoNowinitializingtheprogram,pleasewaitaminite...@formatX:/q/u/autoset@echooff命令就在批文件首经常用到3、Call调用另一个批处理程序格式:Call[[Drive:][Path]FileName[BatchParameters]][:label[arguments]]说明:从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。Call命令接受用作调用目标的标签。如果在脚本或批处理文件外使用Call,它将不会在命令行起作用。参数:(1)BatchParameters指定批处理程序所需的任何命令行信息,包括命令行选项、文件名、批处理参数(从%0到%9)或变量(例%baud%)。(2):label指定批处理程序要跳转到的标签。使用带有该参数的call命令可以创建新的批处理文件上下文,并将控制权交给指定标签后的语句。当首次遇到该批处理文件的末尾时(在跳转到标签后),控制权将交还给CALL语句后的语句。第二次遇到批处理文件的末尾,批脚本将被退出。对于可允许您从批处理脚本返回的goto:eof命令扩展。(3)arguments对于以:label打头的批处理程序,指定要传送给其新实例的命令行信息,包括命令行选项、文件名、批处理参数(从%1到%9)或者变量(比如%baud%)。4、Choice提示选择项目格式:Choice:[/C[:]按键表][/N][/S][/T[:]选择值,秒数][显示文本]说明:命令执行后将提示可选择的项目,这时通过一个按键来选则。使用此命令可以让用户输入一个字符,从而运行不同的命令。参数:其中,/C表示可选则的按键,/N表示不要显示提示信息,/S表示大小写字符敏感方式,/T表示若在批定的时间内没有选则的话,自动执行/C中定义的某个选择值。显示文本是CHOICE命令执行时的提示信息。选择结果将用ERRORLEVEL值来表示。例子:此文件运行后,将显示defrag,mem,end[D,M,E]?用户可选择dme,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以gotoend将程序跳到end标号处,然后程序将显示goodbye,文件结束。例子:choice/c:dmedefrag,mem,end将显示defrag,mem,end[D,M,E]?Sample:Sample.bat的内容如下@echooffchoice/c:dmedefrag,mem,endiferrorlevel3gotodefrag(应先判断数值最高的错误码)iferrorlevel2gotomemiferrotlevel1gotoend:defragc:\dos\defraggotoend:memmemgotoend:endechogoodbye例子5、Echo显示指定的信息格式:Echo[{on|off}][message]说明:打开或关闭请求回显功能,或显示消息。如果没有任何参数,Echo命令将显示当前回显设置。而ECHOOFF与@的意思一样,但它是一个单独的命令,而不能像@那样放在其它命令之前。参数:(1){on|off指定是否打开命令回显功能。(2)message指定要在屏幕上显示的文本。例子:以下范例显示的批处理程序包含前后各有一个空行的三行消息:echooffecho.echoThisbatchprogramechoformatsandchecksechonewdisksecho.如果要关闭回显并且不需要回显echo命令,请在命令之前包含at符号(@),所示:@echooff在相同命令行上可以使用if和echo命令,如下所示:ifexist*.rptechoThereporthasarrived.6、FOR对每个文件运行指定的命令格式:for{%variable|%%variable}in(set)docommand[CommandLineOptions]说明:对一组文件中的每个文件运行指定的命令。大家知道,DOS下许多命令支持通配符,如?和*,可以一次指定一批文件,非常方便。然而,并非所有的DOS命令都支持通配符,如TYPE(文件内容显示命令)就不支持。有了FOR命令就没有关系了,利于它可以使TYPE命令可以一次显示多个文件。参数:(1){%variable|%%variable}必需。代表可替换的参数。使用%variable通过命令提示符执行for命令。使用%%variable在批处理文件中执行for命令。变量要区分大小写,并且必须用Alpha值表示,例如,%A、%B或%C。(2)(set)必需。指定要用指定命令处理的一个或多个文件、目录、数值范围以及文本字符串。需要括号。(3)command必需。指定要对包括在指定(set)中的每个文件、目录、数值范围以及文本字符串所执行的命令。(4)CommandLineOptions指定要通过指定命令使用的任何命令行选项。7、GOTO转到批文件内部的某个标号下执行格式:GOTO[标号名]说明:编程中往往需要重复或跳转到某个地方继续执行,如BASIC语言中的GOTO命令。批文件中的GOTO命令也可以完成类似的功能。在批处理程序中,将WindowsXP导入到由标签标识的行。找到标签后,程序将处理从下一行开始的命令。参数:label指定所要转向的批处理程序中的行。例子:以下批处理程序在驱动器A将一张磁盘格式化为系统盘。如果操作成功,则goto命令会将WindowsXP导向:end标签:echooffformata:/sifnoterrorlevel1gotoendechoAnerroroccurredduringformatting.:endechoEndofbatchprogram.8、IF条件判断命令格式:if[not]errorlevelnumbercommand[elseexpression]if[not]string1==string2command[elseexpression]if[not]existfilenamecommand[elseexpression]参数:(1)not指定只有当条件为假时才执行该命令。(2)errorlevelnumber只有当由Cmd.exe运行的前一个程序返回大于或等于number的退出代码时,才能指定真条件。(3)command指定只有满足前面的条件时才应执行的命令。(4)string1==string2只有当string1和string2相同时才能指定真条件。这些值可以是文字字符串或批处理变量(例如,%1)。对于文字字符串,不需要使用问号。(5)existfilename如果filename存在,则指定真条件。(6)CompareOp指定3个字母的比较运算符。下表列出了compareop的有效值。运算符:EQU等于,NEQ不等于,LSS少于LEQ少于或等于,GTR大于,GEQ大于或等于例子:如果没有找到文件Product.dat,将会显示如下消息:ifnotexistproduct.datechoCan'tfinddatafile如果格式化驱动器A中的磁盘期间出现错误,则下面范例将会显示错误消息::begin@echooffformata:/sifnoterrorlevel1gotoendechoAnerroroccurredduringformatting.:endechoEndofbatchprogram.如果没有出现错误,将跳过错误消息。if命令不能用于直接测试目录,但空(NUL)设备确实存在于每个目录中。因此可以通过测试零设备确定目录是否存在。以下范例可测试目录的存在:ifexistc:mydir\nulgotoprocess例子9、批命令实例写出一个批命令,它能一次显示系统的时间和日期:方法:确定该批命令的文件名如:DATETIME.BAT;明确显示时间和日期的DOS命令TIME与DATE;将两条DOS命令加入批文件DATETIME.BAT中。例如.C:\COPYCONDATETIME.BATDATETIME^Z注意:^Z表示按住CTRL键,再按Z键,表示存盘退出,或是按F6键执行时,键入批文件名DATETIME即可。要写出批文件命令,必须要了解批处理命令和建立批处理的方法。常用COPYCON命令和EDIT来建立。例子例1:C:\COPYCONLX1.BATCD\(先执行命令CD\转入根目录)DIR/W(第二步:显示根目录下文件目录名)CD\USER1(第三步执行转入USER1子目录操作)DIR/W(第四步显示子目录下的文件目录名)CD\(最后返回根目录)^Z例2:C:\COPYCONLX1.BAT@ECHOOFF(@符号的作用是不显示它所在的行)REM(转入根目录)CD\(先执行命令CD\转入根目录)DIR/W(第二步:显示根目录下文件目录名)PAUSE(下面执行转入USER1子目录操作)CD\USER1(第三步执行转入USER1子目录操作)DIR/W(第四步显示子目录下的文件目录名)CD\(最后返回根目录)例子例3:运用ECHO命令设计如下标题:欢迎光临ECHOOFFCLSECHO--------------ECHO||ECHO|欢迎光临|ECHO||ECHO--------------10、自动批处理在批处理文件中有一个特殊的批文件,其文件名为AUTOEXEC.BAT称为自动批处理文件,每次启动DOS时,命令处理程序COMMAND.COM都将在启动DOS磁盘的根目录上寻找名为AUTOEXEC.BAT的文件。当找到这一文件时,就自动执行该文件。例如:需要一开机就显示日期和时间。将DATETIME.BAT该名为AUTOEXEC.BAT并存放在启动盘的根目录下即可。例如:设置QB的批处理命令C:\COPYCONAUTOEXEC.BATPATHD:\;D:\QBASIC;C:\QBASICCDQBASICDIRQBASIC^Z11、常用的批文件命令1、COPYCON[:]文件名.BAT功能:建立批处理文件说明:CON表示用键盘作为输入设备,而屏幕作为输出设备,将源文件的内容从键盘输入。2、REM[注释命令]功能:当执行该命令后,屏幕显示注释内容。3、PAUSE[提示内容]功能:暂停正在执行的批处理文件命令,并在屏幕上显示出“提示内容”。4、ECHO[ON/OFF/提示内容]功能:ECHOON表示显示正在执行的DOS命令;ECHOOFF表示不显示正在执行的DOS命令,初始状态为ECHOON。REM与ECHO的区别:REM后面的信息作为注释信息,在执行过程中连REN一起显示;而ECHO则定位输出信息,在执行过程中只显示信息,而不会将ECHO一起显示出来。5、SHIFT在批文件中改变可替换参数的位置,可替换参数是一种特殊的参数,只能用在批文件中。如执行DIR/S/W命令,其中DIR是命令名,/S和/W是它的执行参数。在批文件中,这些命令参数将被分别赋予到可替换参数中,如/S就成的%1,/W就可了%2。
本文标题:批处理基础
链接地址:https://www.777doc.com/doc-3513654 .html