您的位置:首页 > 其它

《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命令文件.

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐