《DOS命令一日通》第八章 自动文件执行(批处理文件)
2017-10-23 10:33
543 查看
第八章 自动文件执行(批处理文件)
————————————————————————————————————
1. 引言
————————————————————————————————————
DOS使你可以把一系列的DOS命令写进并存到一个文件中, 然后按照写入的顺序
一行一行地读出来自动执行. 包含一系列DOS命令的文件叫 批处理(Batch)文件.它
必需具有.BAT的扩展名,每一行中包含一个合法的DOS命令.
如果批处理文件用AUTOEXEC.BAT的名称给出, 则它能在你的计算机起动时自动地执行. 如果批处理文件用了别的名称,如LIST.BAT, 则你必须打入LIST并按Enter
键,才能运行批处理文件的中的命令.
这里有一个批处理文件的例子,可供你在系统起动时使用. 它询问时间和日期,
配置你的DOS提示符,并清除屏幕. 打入时, 注释不打进去.
注 释
@ECHO OFF 关调批处理过程中的对话.
TIME 显示时间提示.
DATE 显示日期提示.
PROMPT $p$g 显示工作的目录路径.
SET DIRCMD=o/:-GN/P 执行按字母排序的DIR命令, 并把一般文件放
在前面,目录文件跟在后(本命令只有DOS5.00
到DOS 6.2适用).
你可用EDLIN命令或COPY CON 命令来建立这一文件. 如果你使用了5.00或更高版的DOS系统, 则还可用EDIT命令来编辑这个文件. 利用COPY命令时,可在DOS 提示符后打入以下各行来建立这文件,每行后面要按Enter键.
COPY CON: AUTOEXEC.BAT
ECHO OFF
TIME
DATE
PROMPT $p$g ^Z (使用Ctrl-Z或F6来插入字符^Z)
DOS的所有版本都允许你建立,保存及使用批处理文件. 下表所列的是专用的批处理命令, 概述了它们的用法, 指出了适用的DOS版本. 你应知道,批处理文件常常
就叫BAT文件.
————————————————————————————————————
命 令 说 明
————————————————————————————————————
Ctrl-Break或Ctrl-C 停止批处理文件的操作,显示信息:
(所有版本) Terminat batch job (Y/N) ?
打入Y,即返回到DOS,显示DOS提示符, 打N则继续批处
理文件的操作.
%1-%9(所有版本) 让你在批处理文件的命令行中,替代1到10个字符串.当
你在DOS下打入这一批处理文件名并跟随几个参数时,
批处理文件中的%n(其中n是1到9的一个数)符号就被跟
随的第n个参数所代替. 看以下例子:
设批处理文件叫CDSHOW.BAT("changedirectory
and show a file" 的意思), 其中包含
CD %1
TYPE %2
两行. 若你打入的命令为
CDSHOW WPMOMS.LTR
则导致以下两个命令的执行:
CD WP
TYPE MOMS.LTR
注意, %1被"WP"所代替, %2被MOMS.LTR所代替. 如果
文件名包含%号, 则用双%("%%")来表示这个百分号.
CALL(4.01+) 运行一个二级的批处理文件,再返回到原批处理文件中
进行调用的那个地方. 例如:
ECHO INSERT DISK 2 OF2 IN DRIVE A
PAUSE
CALL AUTOEXE1
ECHO FILES COPIEDSUCCESSFULLY...
ECHO(2.00+) 在批处理文件运行时,关闭或打开屏幕的显示. 如果已
关闭时, 若在ECHO后面跟着打入的一个信息,仍可显示
这个信息,例如:
ECHO OFF (关掉批处理文件的显示)
ECHO INSERT DISK1 (显示信息)
ECHO ON (打开批处理文件的县示)
FOR(2.00+) 为跟随在FOR %%变量表示式后面的一组文件执行某一
种相同的操作. 完整的表示式可以象以下那样:
FOR %%f IN (FILE1.TXTFILE2.TXT) DO TYPE %%f
这一命令行使用TYPE命令来自动列出FILE1.TXT 和
FILE2.TXT 两个文件的清单.
GOTO(2.00+) 将批处理操作转到跟在某标号名之后的那一行.标号名
的标记是前面总是加着一个冒号. 例如, :FLAG1 就可
用来作为一标号. 表达式
GOTO FLAG1
将批处理文件的操作转到在标号 :FLAG1 后面的行.
IF(2.00+) 让你为执行批处理文件的命令设置条件. 如果跟在 IF
后的条件成立,接着的命令就会执行, 如果不成立, 则
批处理文件的操作就转入下一行的命令.共有两种不同
类型的IF命令,即IF和IF NOT. 你可用这两种类型来试
一试以下三个条件:
EXIT filename 检测在条件中的文件名filename是否存在.如果文件存
在,则条件作为成立("TRUE")考虑. 看以下例子:
(插入86页上部的程序清单,共9行)
这里, 如果文件 MOMS.LTR 存在, GOTO FLAG1 命令就
执行. 如果文件不存在, 则控制转入下一行,它显示出
信息: "File not found."
string1=string2 检测string1和string2是否严格匹配, 包括大写小写.
如果完全匹配, 则条件成立, 并执行紧跟着的批处理 命令. 如果不完全匹配,则条件不成立,批处理文件的
控制转入下一行. 看以下例子:
(插入86页下部的程序清单,共8行)
如果命令行中的第一个字符串与"uncles.ltr"不匹配,
则命令 CD WP(改变当前目录为 WP子目录)就执行, 否 则控制转入批处理文件的下一行.
ERRORLEVER number 检查使用的程序是否出现一个错误号, 如果错误号大于 或等于所指出的那个号数(number),则条件成立,并执行
跟着的命令行. 如果不成立, 则控制转入下一行. 看以
下例子:
IF ERRORLEVER 1
REM program failure,check for overlay file.
这一例子用来"俘获"程序中大于等于1级的错误, 如果
这样的错误出现了, 则其下注释行的内容
" program failure,check..."
显示出来,批处理文件的操作中断.
PAUSE(所有版本) 暂停批处理文件的操作, 并在下一行显示信息:
"Strikeany key when ready..."
你可以把一个信息加在PAUSE这一个字的后面,如
PAUSE Insert yourprogram disk in drive A.
Strike any keywhen teady...
REM(所有版本) 在批处理文件中遇到时就显示跟在 "REM"后面的注释
信息. 注释可以长到123个字符. 例:
REM transferring files ...
在批处理文件执行时,若在REM后面不跟任何字符信息,
则显示一个空行.
SHIFT(2.00+) 让你在字符串和替换参数(%1到%9)之间的关系中,向左
移动一个数. 例如,在字符串和替换参数(%1到%4)之间
有以下的关系:
%1 ONE.LTR
%2 TWO.LTR
%3 THREE.LTR
%4 FOUR.LTR
若批处理文件中有一行含有SHIFT命令,则关系变为:
%1TWO.LTR
%2 THREE.LTR
%3 FOUR.LTR
%4
文件ONE.LTR不再与命令字符串发生关系.而为另一替 换字符串加了空格.
————————————————————————————————————
批处理文件的最后一个命令行有时是另一个批处理文件名. 这样就可让你运行
多个批处理文件. DOS能"记住"批处理操作从什么地方开始,并且当批处理文件操作结束时, 它将你重新返回到原来的目录.
本节的余下部分提供了一个由一系列批处理文件组成的例子,它显示一个菜单,
执行一些常用的程序,并返回到最原先的目录,再显示你的菜单.
利用打入批处理文件名,你可实现许多方便的工作.
现假设:
1) 你有一个硬盘,其上有充裕的空间来存放批处理文件中所用的程序文件.
注 释
即使你的系统只有软盘,你也可应用以下例子所阐明的原理.
2) 你使用的DOS是2.00或比2.00更高的版本.
3) 存在以下几个子目录:
DBASE <DIR> 包含 dBASE III plus; 打入DBASE filename 可起动这
一程序. 文件名 filename 是可选的.
WP51 <DIR> 包含 WordPerfect; 打入WP filename 可起动这一程序.
文件名 filename 是可选的.
QPRO <DIR> 包含 Quatro Pro; 打入Q filename 可起动这一程序.
文件名 filename 是可选的.
LOTUS <DIR> 包含 Lotus 1-2-3; 打入LOTUS 可起动这一程序.
4) 批处理文件AUTOEXEC.BAT用EDIT(如为DOS5.00或更晚版本),EDLIN,COPY命令打
入,或用能产生ASCII文本文件的字处理程序打入, 内容如下:
DATE
TIME
ECHO OFF
CLS
PATH C:\;C:\DOS;
PROMPT $p$g
MENU ^Z
其次, 建立一个MENU.BAT的程序:
CLS
ECHO.
ECHO.
ECHO *** ProgramMenu ***
ECHO ================================
ECHO To Run Enter
ECHO --------------------------------
ECHO WordPerfect WP
ECHO dBASE IIIPlus DB filename
ECHO Quattro Pro Q filename
ECHO Lotus 1-2-3 LOTUS
ECHO ================================
ECHO Note:"filename" is optional. ^Z
再其次, 要打入几个批处理文件用来执行WP, DB, Q与LOTUS命令. 这些命令能进入
某个子目录,并起动这些程序. 然后再回到根目录并重显菜单.可使用文件名的那些
命令要用替代字符(%1). 以下显示了DB.BAT和LOTUS.BAT两个批处理文件. WP.BAT
文件和LOTUS.BAT批处理文件是类似的, 而Q.BAT和DB.BAT类似, 它们都可以在起动时使用文件名.
DB批处理文件DB.BAT为: LOTUS批处理文件LOTUS.BAT为:
CD \DBASE CD \LOTUS
DBASE %1 LOTUS
CD\ CD\
MENU MENU
从以上例子你可以看到,批处理文件是极为有力的工具.它们使你在执行一系列DOS命令时所需的击键次数减到最少.你可以把成百个命令装入一个或几个批处理文件. 这一批处理文件可用很少量的击键来执行, 这样节省了时间, 并把潜在的击键错误减到了最小.
批处理文件AUTOEXEC.BAT与MENU.BAT用在系统起动时自动执行一个程序是极好的. 这使无经验的计算机操作人员不需要知道DOS命令或程序的起动步骤,就可使用
一个程序.
2. 批处理文件的作业
————————————————————————————————————
在本作业中,你将建立并使用批处理文件. 从DOS提示符开始.
1). 用EDLIN, DOS5.00的EDIT, 或COPY命令来建立以下的AUTOEXEC.BAT文件.
本例使用的是COPY命令. 打入所示的各行命令,在每行后面按Enter键.(^Z
的输入用按Ctrl-Z来实现.)
(插入第90页上面的打印清单)
2). 打入AUTOEXEC并按Enter键来执行AUTOEXEC批处理文件.
3). 注意以下显示; 并用Enter键来响应DATE及TIME提示.
(插入第90页下面的打印清单)
4).如果你愿意,可用DEL命令来删除这一文件.如果不删除它,则你以后可经常性 地使用这个AUTOEXEC命令文件.
相关文章推荐
- 《DOS命令一日通》第十章 文件属性与复制的控制命令
- windows7下,在命令窗口中用telnet命令时, 命令无法执行,提示:“'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件”
- Java如何调用可执行文件和批处理命令
- 使用批处理文件同时打多个CMD窗口且执行多条命令
- WinRAR 自动解压 解压完成后,执行批处理文件
- 如何将DOS下执行命令的结果信息保存到一个文件
- dos命令执行mysql的sql文件
- Open and run Grasshopper from a batch file 用批处理命令自动打开指定的3dm文件和GH文件
- 在windows下写成批处理文件(.bat)顺序执行命令
- 在窗口中执行mysql命令时,如果提示:mysql不是内部或外部命令,也不是可运行的程序或批处理文件
- python中的commands模块,执行出错:'{' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- TFS 自动同步Server 端文件的批处理命令
- 以一个例子来讲ubuntu12.04下脚本文件内执行sudo 命令自动输入密码
- dos命令执行mysql的sql文件
- 如何设置使windows(dos)命令中目录和文件可以自动完成和补齐
- mvn -v 报错,’不是内部或外部命令,也不是可执行程序或批处理文件
- 如何设置使windows(dos)命令中目录和文件可以自动完成和补齐
- android不是内部或外部命令,也不是可执行的程序或批处理文件
- [dos命令大全] 根据文件里的字符,自动创建目录
- Java如何调用可执行文件和批处理命令