快好知 kuaihz订阅看过栏目

 

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。

批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,遵守以下这条:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。

原理

把要处理的信息分成组,成批地交给信息系统自动处理。在以计算机为主的信息系统中,信息的输入、输出速度与信息处理的速度不相匹配。为了减少人工操作时间和改善机器的利用情况,把要处理的信息(例如工资卡、库存记录等)按一定周期收集在一起,成批地交给系统进行处理。所有的作业也可适当地分批,系统启动后自动地处理第一个作业,处理完后不需操作员干预而自动地过渡到处理下一个作业,直至一批作业处理完毕为止。

早期的批处理对作业的输入输出采取联机处理,高速的中央处理机要等待低速的联机输入、输出设备,不能发挥应有的效率。后来采用脱机处理:先把若干个作业输入到磁带上,中央处理器从磁带上把作业调入并执行,作业完成后把结果记录在磁带上,再由外围机将磁带上的信息输出。这样中央处理机得以摆脱低速的输入、输出设备的牵制,提高处理能力。  

如果数据是在远方收集,通过终端送入数据采集器,数据采集器先将一段时间内的信息存储起来,再通过传输线路将它们成批地送入系统进行处理,则这种处理方式称为远程批处理。

批处理能有效地提高计算机的利用率,是最经济的处理方法。但是在批处理中,用户提交作业后便失去了对作业的控制和修改能力,用户必须以作业说明书的形式向系统提供控制信息,还需要估计运行过程中可能出现的问题,并把处理方法事先告诉系统。对新的处理作业,用户无法预测可能出现的事件,所以希望系统有与用户交互作用的能力(见交互式处理)。这种情况不适合采用批处理。另外,在批处理系统中,用户提交作业后通常要经过几小时甚至几天的时间才能得到所需要的结果,这样长的周转时间对那些仅计算一个很小的题目,或只对已存文件作几行修改的短作业用户非常不便,尤其对时间紧迫的作业更不宜选用批处理方式。在大型处理系统中,批处理经常是后台作业,前台作业采用分时处理

分类

批处理按作业的处理次序可以分为顺序批处理和随机批处理。

顺序批处理  

对成批的信息按规定的顺序自动地依次进行处理。传统的处理方法是父-子方法。按信息处理要求对原来的主文件(父)进行修改,建立新的主文件(子),将它作为下一次运行的父文件,而原来的父文件自动地成为后备文件。这种处理方式的优点是主记录的插入、删除容易,新老文件可以选用同一类型的外围设备,平均访问时间短。缺点是老文件中不常用的部分也必须写入新文件。

顺序批处理中,信息输入的顺序必须与文件的顺序严格一致。事先把信息经过分类和排序,记录在磁带或卡片上,批处理一旦开始,在一个预定的时间内,所有适当的信息都进入系统,顺序地进行处理。

随机批处理  

对成批的信息仅处理需要的部分,而对其他无关部分不加任何处理(见随机存取)。

功能

其用处非常大,使用也比较广泛。比如每次都执行一些相同的命令,您一定会觉得非常麻烦,而放在批处理文件中执行的话则轻松得多。AUTOEXEC.BAT 就是一个特殊的批处理文件,它在DOS的启动时自动运行,在系统的配置中发挥着非常大的作用。

批处理使用方便,只要新建一个文本文档,把批处理语句添加进去,保存后修改文件扩展名为.bat即可双击使用。

扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。

首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。

其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。

第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:\batch,你就可以在任意位置运行所有你编写的批处理程序

第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,每次系统启动时会自动运行该文件,你可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。

实例

简单的说,批处理的作用就是自动的连续执行多条命令。

这里先讲一个最简单的应用:在启动wps软件时,每次都必须执行( >前面内容表示DOS提示符):

C:\>cd wps

C:\WPS>spdos

C:\WPS>py

C:\WPS>wbx

C:\WPS>wps

如果每次用WPS之前都这样执行一遍,您是不是觉得很麻烦呢?

好了,用批处理,就可以实现将这些麻烦的操作简单化,首先我们编写一个runwps.bat批处理文件,内容如下:

@echo off

c:

cd\wps

spdos

py

wbx

wps

cd\

以后,每次进入wps,只需要运行runwps这个批处理文件即可。

命令

echo、@、call、pause、rem 是批处理文件最常用的几个命令。

echo 表示显示此命令后的字符

echo off 表示在此语句后所有运行的命令都不显示命令行本身

@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。

call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。

pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续

rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。

特殊命令

if goto choice for是批处理文件中比较高级的命令。

一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:

1、if [not] "参数" == "字符串" 待执行的命令

参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。

例:if "%1"=="a" format a:

2、if [not] exist [路径\]文件名 待执行的命令

如果有指定的文件,则条件成立,运行命令,否则运行下一句。

如: if exist c:\config.sys type c:\config.sys

表示如果存在c:\config.sys文件,则显示它的内容。

3、if errorlevel 数字 待执行的命令

很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。

如if errorlevel 2 goto x2

二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if 配合使用,根据不同的条件来执行不同的命令组。

如:

goto end

:end

echo this is the end

标号用“:字符串”来定义,标号所在行不被执行。

三、choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户的选择运行不同的命令。

注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。

choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:

工具允许用户从选择列表选择一个项目并返回所选项目的索引。

四、for循环命令,只要条件符合,它将多次执行同一命令。

语法:

对一组文件中的每一个文件执行某个特定命令。

FOR %%variable IN (set) DO command [command-parameters]

%%variable 指定一个单一字母可替换的参数。

(set) 指定一个或一组文件。可以使用通配符。

command 指定对每个文件执行的命令。

command-parameters

为特定命令指定参数或命令行开关。

例如一个批处理文件中有一行:

for %%c in (*.bat *.txt) do type %%c

则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。

参数

批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符“%”。

%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。

参数列表

/C choices 指定要创建的选项列表。默认列表是 "YN"。

/N 在提示符中隐藏选项列表。提示前面的消息得到显示,

选项依旧处于启用状态。

/CS 允许选择分大小写的选项。在默认情况下,这个工具

是不分大小写的。

/T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0

到 9999。如果指定了 0,就不会有暂停,默认选项

会得到选择。

/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选

项指定的一组选择中; 同时,必须用 /T 指定 nnnn。

/M text 指定提示之前要显示的消息。如果没有指定,工具只

显示提示。

/? 显示帮助消息。

相关教程

红客黑客联盟:《批处理专题》http://www.7747.net/Article/Special/all/

华夏黑客联盟:《批处理完全精通专题》http://hack.77169.com/Special/bat/

有上百篇的技术文章,从入门到精通,面面俱到。

相关下载

网络上有很多的批处理程序可以免费下载。按功能分有这几类:

文件属性批处理、音视频文件批处理、办公文件批处理、图像文件批处理。

可在这些著名网站下载:

批处理吧:http://www.pcl8.com/

北大青鸟:http://www.gz-benet.com.cn/bbs/Show.Asp?ID=1498

相关词条

DOS汇编语言
参数命令
信息C语言

参考资料

[1] 一点通 http://www.sunenze.com/jc/autoexec.asp

[2] 天极网 http://www.yesky.com/it/127/2000127.shtml

投稿
非常不爽,删了吧! 相关词条:文化 语言文字 专业术语 脚本 命令 平台 自动化 信息 计算机 人工 周期 处理 干预 联机处理 输出设备 脱机处理 外围机 终端 远程 说明书 交互式处理