DOS下的可执行文件有三种,分别是EXE,COM,BAT。其中EXE和COM文件是二进制形式,只有BAT文件是文本形式,可以直接读取。所以相对于上面的二进制可执行文件,BAT文件的内容要简单很多。这些文件包含一组DOS命令,通常称为批处理文件。虽然批处理文件的构成相对简单,但它非常有用,应用非常广泛。比如每次都执行一些相同的命令,会觉得很麻烦,但是在批处理文件中执行就简单多了。AUTOEXEC。BAT是一个特殊的批处理文件,在DOS启动时自动运行,在系统配置中起着非常重要的作用。所以要学好DOS,一定要学好批处理文件。下面描述了批处理命令及其用法。
DOS自己的批处理命令:
@
:将此符号放在批处理文件中其他命令的前面,命令本身在运行时不会显示。例如,@ECHO OFF命令经常用在批处理文件的开头。CALL
:从一个批处理文件调用另一个批处理文件。调用后,继续执行原来的批处理文件。用法:调用[批处理文件名]注意:也可以使用COMMAND /C命令来完成相同的操作。CHOICE
:选择命令。这是一个DOS外部命令,但它主要用于批处理文件。执行CHOICE命令后,系统会提示您选择项目,然后您可以通过按一个按钮来选择项目。用法:choice: [/C [:]键列表] [/N] [/S] [/T[:]选择值,秒] [显示文本],其中/C表示可选键,/N表示不显示提示信息,/S表示区分大小写字符,/T表示如果在批准的时间内没有选择键。文本是执行选择命令时的提示信息。结果将由ERRORLEVEL值表示。ECHO
:显示指定的信息。通常显示在屏幕上。例如,ECHO Hello会在屏幕上显示Hello这个词。此外,ECHO ON|OFF用于设置在执行批处理文件时是否显示命令本身。ECHO OFF与@的含义相同,但它是一个单独的命令,不能放在其他命令之前,如@。FOR
:为指定的文件运行相应的命令。众所周知,DOS下的很多命令都支持通配符,比如?还有*,可以一次指定一批文件,非常方便。但是,并不是所有的DOS命令都支持通配符,比如TYPE(文件内容显示命令)。对于FOR命令,这无关紧要,因为它允许TYPE命令一次显示多个文件。用法:FOR % variable name IN(file set)DO command[command parameters]注意:以上是FOR命令的固定形式,IN和DO的位置必须正确,否则会提示语法错误。例如,(*中%F的。*) DO TYPE %F命令可以实现TYPE命令一次显示多个文件。注意:%F是变量名,但也可以用%G代替,但必须一致。在批处理文件中替换为%%F。GOTO
:转到批处理文件中的一个标签并执行它。众所周知,在编程中,经常需要重复或者跳转到某个地方才能继续执行,比如BASIC语言中的GOTO命令。批处理中的GOTO命令也可以完成类似的功能。用法:GOTO【标签名】可以随意设置标签名的地方,如Hello等。用“:”符号设置标签,比如“:Hello”,然后使用GOTO Hello命令转到“:Hello”的位置,继续执行批处理文件。IF
:条件判断命令。这是一个非常有用的批处理命令。用法:if[not]exist filename command[command parameter]含义:如果[no]文件存在,将执行命令。用法:2:IF [NOT] ERRORLEVEL错误返回码命令[command参数]含义:如果错误返回码[no]大于或等于指定的代码,将执行一个命令。其中ERRORLEVEL表示错误返回码,非常有用。对于许多DOS命令,由于执行结果不同(如成功执行、执行失败或被用户中断等。),这些命令将返回不同的代码名称来指示不同的结果。误差级命令根据这个不同的结果产生的不同的代码执行不同的命令,通常用在某个命令之后。例如,如果错误级别1回声正常!如果当前错误返回码大于或等于1,“OK!”将显示在屏幕上。的话。用法:if[not]string 1==string 2 command[command parameter]含义:当string 1和string 2[not]相等时执行一个命令。PAUSE
:暂停批处理文件的执行,显示“按任意键继续”字样。REM
:添加评论。用于增加文件的可读性,不会被执行。也可以用:代替。SHIFT
:更改批处理文件中可替换参数的位置。可替换参数是一个特殊的参数,只能在批处理文件中使用。这些参数由用户在执行批处理命令时输入。例如,我们执行DIR /S /W命令,其中DIR是命令名,/S和/W是它的执行参数。在批处理文件中,这些命令参数将被分配给可替换的参数,如%1代表/S,%2代表/W,等等,命令本身将被分配给%0。批处理文件使用可替换的参数来操作执行过程中输入的参数。例如,有一个名为MYFILE的批处理文件。蝙蝠和我的档案。BAT YES是在命令行执行的,所以%0的值是MYFILE。BAT,而%1的值为“是”。在这个批处理文件中,可以使用IF等命令来确定%1等参数的值,然后根据这些值执行不同的操作,例如if% 1= yes goto yes。SHIFT命令不带参数,执行的结果是把%0的值改成%1的原值,原值%1变成原值%2,以此类推。注意它的不可逆性。因为批处理文件可能有很多运行参数,可能超过10个,而可替换的参数只能是%0到%9。如果想获得%9之后的参数值,只能使用SHIFT命令。此时,整个参数列将被向前推。以上是DOS的批处理命令。可以看到,这些命令非常少。如果你想写一个更复杂的程序,显然不可能用上面的命令来实现它们。这时候就需要其他实用的批处理工具了,比如proven、STRING、ASET、BATCHMAN、WBAT等。有大家熟知的实用的,都可以从DOS软件分类下载里的脚本工具下载。在批量文档中使用上述工具可以实现非常强大的功能,甚至可以完成很多高级语言程序的功能。因此,如果你想编辑和编写批处理文件,它们是一个很好的选择。他们不仅有详细的文档,而且还在不断发展。
下面说说批量文件的制作。其实做批量文件并不难,只要掌握方法。随着操作次数的增多,你会发现越来越容易。
先用文本编辑器,比如DOS自带的edit命令或者其他编辑工具,比如PEDIT,新建一个空白文件(当然直接用COPY CON命令创建也可以),然后根据你要完成的功能输入批处理命令。如果您只想执行一组DOS命令,只需在每行中按顺序输入一个DOS命令。但是如果要完成一些比较复杂的操作,就需要上面的批处理命令或者上面的批处理工具。
下面是我最初编的一个小批量程序,从1%逐渐增加到100%。你可以用它作为参考来写你自己的程序。
@ echo off break off cls set c=0 write XT 10 1 Wait.be延迟4:循环写文本10 9 %c%%%completed.如果不是则计数% c %==101转到循环回显。设置c=kpush /f break on
其中我用的是WRITEXT,COUNT,BE,KPUSH,都是批处理工具。WRITEXT是ECHO的增强工具,可以自定义显示效果。COUNT是一个变量计算工具。例如,如果C的原始值为1,执行Count C后,C的值将为2,be是一个强大的批处理增强工具,包含在Norton Utilties 8.0中。KPUSH是一个键盘缓冲工具。
总之,使用批处理命令和批处理增强工具,我们可以编译许多功能强大的批处理文件。你不妨试一试。许多批处理工具可以在脚本工具中下载。