|
转载一文章,希望对你会有帮助
1 o% V' i* [; }$ @4 X+ y# Q+ T4 x' ]7 G. K: r' [- K( Z6 `
后缀是bat的文件就是批处理文件,是一种文本文件。简单的说,它的作用就是自动的连续执行多条命令,批处理文件的内容就是一条一条的命令。那它有什么用呢?
5 @0 k3 |+ J6 @; M
7 h) ^' @# j* E2 ~- _比如,在启动wps软件时,每次都必须执行 4 N: H% P# R5 ^; l8 b3 v) ?
, _- e; o# R5 [% U& w3 u7 q$ z, S
C:\>cd wps
2 T) \# I% m, F. V {3 wC:\WPS>spdos
1 q0 f/ h* F3 EC:\WPS>py
( i+ r" e2 ]$ i4 kC:\WPS>wbx ( M; g! g- \- G6 P7 j6 ^
C:\WPS>wps 8 y0 u3 ^* u6 y6 q8 a; W3 x
. m# I: b8 `: Q) M
如果每次用WPS之前都这样执行一次,您是不是觉得很麻烦呢?
6 m* f2 f7 p+ C9 J' O( O
1 O( `# z: J$ S6 v( g9 M如果有一个方法,只需编写一个批处理文件,就会自动执行刚才的所有命令,您想不想学呢?
/ d# M. |2 N- ]$ Y, @( o3 W$ e2 J& T _" s
当您看完此节,自己编写的第一个批处理文件顺利执行时,您一定会大吃一惊的。
, d1 Z: o7 M0 @. f( N" N; W$ b7 h, T% N/ j( u6 o
此外电脑每次启动时都会寻找autoexec.bat这条批处理文件,从而可执行一些每次开机都要执行的命令,如设置路径path、加载鼠标驱动mouse、磁盘加速smartdrv等,可以使您的电脑真正自动化。
9 z" F5 c1 a6 W- O& S1 @$ B" H! E3 K
echo、@、call、pause、rem 是批处理文件最常用的几个命令,我们就从他们开始学起。 echo 表示显示此命令后的字符 0 V- k: t& `. m7 X
echo off 表示在此语句后所有运行的命令都不显示命令行本身 ' j: b3 r* B3 K6 O8 t
@ 与echo off相象,但它是加在其它命令行的最前面,表示运行时不显示命令行本身。
o* C" S; T( l3 Rcall 调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完那条文件后将无法执行当前文件后续命令) 8 w) ~/ @/ @# }: N
pause 运行此句会暂停,显示Press any key to continue... 等待用户按任意键后继续 5 _+ F* o& F( T. b. ^/ v; L) F Z
rem 表示此命令后的字符为解释行,不执行,只是给自己今后查找用的
9 s1 n# M9 w' S8 z$ E F' P' x+ f* x( C% y
/ m5 Y, O8 T$ o* `0 \* p W例:用edit编辑a.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。
9 |9 x: o% x% h/ z5 G) H' K
+ n4 ]' s9 \6 | k9 P批处理文件的内容为: 文件表示: $ P/ T0 |; z) k' ]$ ^* I5 P- `
- Y4 n% D# s. t1 c" J4 W! m% x+ Becho off 不显示命令行 4 M8 M+ b( X6 d0 ]7 C, `& m$ r
2 G0 M8 A. f0 D$ }6 {1 E
dir c:\*.* >a.txt 将c盘文件列表写入a.txt $ F2 ?* s& d8 Z8 {
6 ?+ J7 B2 w+ G+ A6 Gcall c:\ucdos\ucdos.bat 调用ucdos " C" v- s# [* x. R# S4 m
" z1 Q' [: e$ K. ~8 s7 t9 f, hecho 你好 显示"你好"
! v2 G) P! C( O# O$ a+ W$ Y2 ]1 s# n8 N# \6 h5 V% p+ m
pause 暂停,等待按键继续
' G* }2 J! P6 ^
1 B! q% ?/ b L6 j8 e9 K" Z- p' x% yrem 使用wps 注释将使用wps
( e2 X* ` s- z' H( c
! p7 N* B( d& Rcd ucdos 进入ucdos目录 2 L$ L9 d; y h: q( R
# {: \6 d2 |4 {wps 使用wps
) O8 M7 S# b0 M: ^; O+ K) X
7 ?' [; z! n# N- \) y! B6 I批处理文件中还可以像C语言一样使用参数,这只需用到一个参数表示符%。 , L: X6 D n. J+ ?: \1 U ~5 g
" M' n( l* h; {/ x. S%表示参数,参数是指在运行批处理文件时在文件名后加的字符串。变量可以从 %0到%9,%0表示文件名本身,字符串用%1到%9顺序表示。
+ S* o7 a8 K0 |3 |7 d1 F
1 D4 I5 u; a4 e6 k# M例如,C:根目录下一批处理文件名为f.bat,内容为 format %1
- j% _# \# u+ S9 L# r7 I) C3 ?0 s. u* a5 A* }2 o7 U5 _
则如果执行C:\>f a: 则实际执行的是format a:
; L0 O9 C- [& p# i! e, ?9 \: s4 _7 ^
又如C:根目录下一批处理文件的名为t.bat,内容为 type %1 type %2 : H% G; i% ]6 n/ h1 t- o4 k
2 F V8 s$ R0 @那么运行C:\>t a.txt b.txt 将顺序地显示a.txt和b.txt文件的内容
5 G" X: u" O6 m$ ?' {/ i* Z
2 ^8 M1 A. F, oif goto choice for 是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。
$ ~" G2 Q+ X% ?- F& R
! e: t# ^: B5 C9 l5 rif 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:
5 a& ~$ Y+ Z: b# } `" b1、if "参数" == "字符串" 待执行的命令
4 m- F3 u( W* G9 I6 B+ R参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号) ) ]9 s$ s y6 M0 l$ c' d
如if "%1"=="a" format a: 7 O/ r% ~5 y. _* a0 F
% P8 o( V. V: C! @
2、if exist 文件名 待执行的命令 ( c! w6 O7 Q7 x$ k6 r h; O" U
如果有指定的文件,则条件成立,运行命令,否则运行下一句。如if exist config.sys edit config.sys 9 N* A3 G" G3 z$ d5 ?
/ c+ Y" ~" B& l0 ?, T8 E+ a. P3、if errorlevel 数字 待执行的命令 & B1 E% \2 t' [( h& \1 I6 |
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。如if errorlevel 2 goto x2 DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码 + v9 o3 p/ T* S
3 y( I. A) s; d: Jgoto 批处理文件运行到这里将跳到goto 所指定的标号处, 一般与if配合使用。 如:
! x1 m0 f$ Z; g" i5 a; ?# k4 @" ^" {: j/ @
goto end
6 B; ]1 b. e2 r: Z5 t
5 Q% N0 z. E; g0 `6 g0 c:end
, @9 b, f! A! W+ e: Techo this is the end 4 x" _: R2 N$ T m" r( z
5 ~, D$ b+ w7 h+ ]0 H4 x# ?
标号用 :字符串 表示,标号所在行不被执行
6 T1 g9 a/ M; Y6 C5 l+ ~
* ?& F$ Y+ _5 Z% K7 c" R% C) I o) J8 }choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234…… 0 D% b% @7 g+ a, v* K: e/ w
+ U& ^+ p- ]; }3 b0 U- o1 O
如: choice /c:dme defrag,mem,end / v. t" x6 C9 Z }" G$ F3 l/ T
将显示
2 ~# Q1 O3 ]. U4 s4 Z% Udefrag,mem,end[D,M,E]?
" x5 V1 b! c6 t; s" k7 ~" z7 d% @, U9 \/ e# p1 o
例如,test.bat的内容如下: ; r$ d1 m0 k1 @+ t; j: F, A6 B+ D
@echo off $ c" l1 ~) U: K/ \. Y0 M
choice /c:dme defrag,mem,end
9 `/ g: b- Y. f! l/ `5 d* \if errorlevel 3 goto defrag 应先判断数值最高的错误码
5 N- ]8 g# [9 j, ~if errorlevel 2 goto mem
7 x H( P4 }, bif errotlevel 1 goto end
* k4 L5 x. e" n) M+ ~2 h( C
7 S/ Y& ?- { j* j k" b:defrag
, u. q8 s& T5 {) L- a' T. mc:\dos\defrag
+ m! O0 m/ ~ S d% B6 q1 wgoto end 6 X, @# t& Y n& x
9 v4 a2 W5 T" a& @6 K2 ^# x
:mem 8 a5 Q1 h" d& |
mem $ m) s2 r% f, ]5 B
goto end 3 \7 P9 R4 P* w& O' s, \
' S3 A0 `) k4 H" ^) X7 U! C:end : w- q) B: c) x, D2 u$ O
echo good bye 7 @/ [* K0 E$ G* I0 x$ w) q I: D* G
z$ W5 n) [) b- h6 x& Y此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。 9 k1 V0 R; O# f7 I2 d8 n$ Y
6 S% ~/ M* O3 B% |' N, Pfor 循环命令,只要条件符合,它将多次执行同一命令。 % Z# c$ a, H. a! t8 d
2 B2 I, K n% {
格式FOR [%%f] in (集合) DO [命令] 7 J4 G; {) ^6 l6 [- ^1 W6 Z
只要参数f在指定的集合内,则条件成立,执行命令
' i* e, f# _# r/ W
$ v" ~* _2 J6 C( {9 h如果一条批处理文件中有一行:
4 @: r6 ~" I; L# A" A% nfor %%c in (*.bat *.txt) do type %%c 7 ~. A1 j) n& p1 A
含义是如果是以bat或txt结尾的文件,则显示文件的内容。
9 h* P) @8 q+ E1 b2 |9 R3 G3 ^! d* g8 u
autoexec.bat
. E- e: [6 U( \0 |/ d' L+ ]; K$ C6 S& P2 T
DOS在启动会自动运行autoexec.bat这条文件,一般我们在里面装载每次必用的程序,如: path(设置路径)、smartdrv(磁盘加速)、 mouse(鼠标启动)、mscdex(光驱连接)、 doskey(键盘管理)、set(设置环境变量)等。
) i3 U4 K* N2 M! p- t. R9 S0 F* E4 ]# i t. ~9 A0 \, G
如果启动盘根目录中没有这个文件,电脑会让用户输入日期和时间。
2 ?5 i4 K. t$ F5 Y
0 O; ^, r* A8 \例如,一个典型的autoexec.bat内容如下: 9 T+ c5 l; Q, J) ]
, X" J, s+ `9 S@echo off 不显示命令行
* N8 ]8 z) d# T( t9 ^& I: h6 k, C
' h! |/ D+ J% q2 b+ ]prompt $p$g 设置提示符前有目录提示
3 ^! g$ B; p7 J; S6 N. Z3 L. }6 h7 l r5 {& n
path c:\dos;c:\;c:\windows;c:\ucdos;c:\tools 设置路径
, J" ~1 F* @5 W# I7 |+ V; j; n% C, S6 s/ P5 C
lh c:\dos\doskey.com 加载键盘管理 4 w0 t9 F& Z2 V: {
; o/ V& I( p& c4 r! Ilh c:\mouse\mouse.com 加载鼠标管理
) z8 n$ u' p& e' r, O& c- g
: S, D$ T( V7 W, Vlh c:\dos\smartdrv.exe 加载磁盘加速管理
& G3 T& y N9 U# D6 r; i- K; x0 E
lh c:\dos\mscdex /S /D:MSCD000 /M:12 /V 加载CD-ROM驱动
- n3 y7 g, A. s2 o! U) n+ B# T$ o2 h* C- t; Z* z8 n' m
set temp=c:\temp 设置临时目录 |
|