也谈批处理

一、批处理文件

1.批处理文件的作用

使用批处理文件可以提高工作效率,加快操作速度,节省工作时间,避免烦琐的连续重复操作内容。

2.怎样建立批处理文件

我们可以用常用的文本编辑器诸如UCDOS下的WPS的N方式、CCED、DOS外部命令EDIT、DOS 的内部命令“COPY CON 文件名.BAT”、WINDOWS下的记事本、写字板、WPS 2000、WORD 2000等随意建立和编辑批处理文件。在使用WINDOWS平台下的文本编辑器建立或编辑批处理文件时,存盘时应该存为文本格式,且文件的扩展名一定为.BAT。

二、批处理文件中命令的含义

(1) ECHO 命令
功能:这是一个内部命令,它决定是否把批处理文件中当前正在执行的 DOS命令名显示在屏幕上。不管是否显示在屏幕上,它不会干扰命令的执行以及命令执行所产生的信息。
格式:ECHO [ON|OFF message]
说明:
ON——打开批命令名称显示。
OFF——关闭批命令名称显示。
message——显示指定的字符串,该字符串的长度<=123个字符, 该信息可以包括批处理参数。例:
① 设批处理文件TEST.BAT在A盘。其内容如下:
ECHO TURN OFF ECHO
ECHO OFF
VER
VOL
ECHO TURN ON ECHO
ECHO ON
VER
VOL
执行时,键入该批处理文件名并按Enter键:A:>TEST
屏幕将显示如下执行的结果:
A:>ECHO TURN OFF ECHO
TURN OFF ECHO
A:>ECHO OFF
MS-DOS Version 6.22
Volume in drive A has no label
turn on echo
A:>MS-DOS Version 6.22
A:>VOL
Volume in drive A has no label
A:>
②如果ECHO不带有参数,则当前状态(ON或OFF)显示在屏幕上。 如:若当前ECHO状态为ON,则执行下面命令后:
A:>ECHO
屏幕信息:ECHO IS ON .

(2) Exit 命令
功能:这是一个内部命令,终止批处理命令或辅助命令处理器的执行并返回DOS控制或调用过程,同时释放辅助命令处理器所分配的内存。
格式:Exit
例:A盘中批处理文件TEST.BAT的内容如下:
echo off
ver
exit
echo on
vol
执行时,键入批处理文件名,并按回车:A:>TEST,屏幕显示:
echo off
MS-DOS Version 6.22
A:>
可见,命令echo on 和vol 没有执行。Exit 的作用就是直接返回DOS。

(3) FOR 命令
功能:这是一个内部命令,提供命令的重复执行。
格式:FOR%% [variable] IN(set)DO DOS-command
或 FOR% [variable] IN(set)DO DOS-command
说明:
DOS-command 重复执行的命令
set DOS 按顺序使用的一组文件名(又称文件名集合)
%%variable 是在批处理文件中用来顺序接受set 中所指定的文件名的变量
%variable 是在DOS提示符下执行FOR命令时用来顺序接受set 中所指定的文件名的变量
注释:在批处理文件中使用FOR命令,必须使用%%variable格式;
在DOS提示符下执行FOR命令,必须使用%variable格式。
FOR 命令不能是无限循环。
在set集合中,文件名支持通配符。
例如:假如在一个批处理文件中有一条 FOR 命令:
FOR %%M IN(AUTOEXEC.BAT,CONFIG.SYS)DO TYPE %%M
当批处理文件执行到这一条命令时,DOS 首先把文件名AUTOEXEC.BAT赋值给变量M,然后在屏幕上显示M的内容即 AUTOEXEC.BAT的内容, 接着DOS把文件名CONFIG.SYS赋值给变量M,再显示M的内容——CONFIG.SYS 的内容,最后结束 FOR命令的执行。
在DOS提示符下执行下面一条FOR命令:
FOR %M IN(*.COM) DO DIR %M
则屏幕将列出当前磁盘目录下的所有扩展名为 COM 的文件目录列表。

(4) GOTO 命令
功能:这是一个内部命令,在批处理文件中提供了命令转移的结构。
格式:GOTO label
说明:label 是批处理文件中的一个标号,标号必须包括在一行上,标号格式如下:
:label
标号与文件名的规定一样,只有前8个字符有意义,因此labelname1和labelname2这两个标号是相同的。
注释:在执行 goto 命令时,若没有发现标号,则终止批处理文件的执行,返回到DOS系统提示符,并显示下列信息:
label not found (没找到标号)
举例:
:lyx
dir
goto lyx
此批处理文件重复显示磁盘上当前目录列表,直到按下Ctrl+Break键才终止批处理文件的执行。

(5) IF 命令
功能:这是一个内部命令,提供批处理文件中命令的条件处理。
格式:IF [NOT] condition DOS-command
说明:
condition 是可计算的布尔条件表达式,必须是下面形式中的一种:
(1)errorlevel value;
(2)EXIST文件标识符;
(3)字符串1==字符串2。
NOT 与 condition 配合使用,并对 condition 的反操作进行判断
如:NOT EXIST LYX.EXE (判断在当前盘当前目录是否有?LYX.EXE)?
DOS-command 当条件为真时要执行的命令。
举例:
假如一个批处理文件中包含有下面的命令:
IF NOT EXIST A:myfile.dat GOTO label1
.
.
:label1
.
.
执行到IF命令时,先测试A盘上是否有myfile.dat 文件, 如果有则按顺序进行,没有则转到 label1 下面的命令去执行。

(6) PAUSE 命令
功能:这是一个内部命令,暂停批处理文件中批命令的执行。
格式:PAUSE [message]
说明:message 是暂停命令执行时,需要在屏幕上显示的信息。
注释:
① 执行 PAUSE 命令后,如要继续执行批处理过程,只需按一下任意键。如要终止执行批处理过程,则按下 Ctrl+Break 键,这时屏幕将提示:
Terminate batch job(Y/N)? (终止批处理操作吗?)
终止批处理则按Y,否则按N,批处理命令继续执行。
② PAUSE 命令在批处理过程中为用户更换软盘或显示提示信息提供了方便。
③ message 提示信息最多可包含123个字符。
举例:
在一个批处理文件中插入下面两个命令:
.
.
.
PAUSE insert a disk in drive B:
PAUSE strike any key when ready…
.
.
.
执行到此命令时,屏幕上显示信息:
Insert a disk in drive B:
Strike any key when ready…

(7) REM 命令
功能:这是一个内部命令,在执行批处理文件期间显示说明信息或显示一空行。
格式:REM [message]
说明:message 是要显示的信息,其长度不超过123个字符,缺省则在屏幕上显示一个空行。
注释:
① 当 ECHO 为 OFF 时,REM 不显示信息;当 ECHO 为 ON 时,REM 显示信息。
② 使用 REM 和 PAUSE 显示信息的区别是:执行 REM 时,不引起屏幕的暂停;而执行 PAUSE 时,引起屏幕的暂停。

(8) SHIFT 命令
功能:这是一个内部命令,将每一个批处理文件参数左移一个位置。
格式:SHIFT
说明:一个批处理文件最多可以同时引用10个参数%0~9,这10个参数是在执行批处理文件时,通过命令行传进批处理文件中的。在命令行中,参数是用空格来分隔的。如果命令传进的参数个数多于10个,则可用 SHIFT 命令将整参数左移一个位置,这时批处理文件中的参数%0 接受的是命令行中传入的第二个参数(命令行中的第一个参数被移走了)。%9接收的就是命令行中的第11个参数了。 如果还要接收第12个参数,则需要再执行一次SHIFT命令,这时%9接收的就是命令行中的第12个参数了。
举例:
display.bat
@echo off
:AA
shift
if ‘%0’==’ ‘goto BB
echo %0
goto AA
:BB

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部