批处理命令与示例

 

一、批处理文件中可以使用哪些命令?
只要能够在DOS的系统提示符下执行的命令,或应用软件执行文件名称,都能写
在批处理文件中,批处理命令也可包含在内,详细如下:
1.DOS的内部命令
2.DOS的外部命令
3.COM的命令文件
4.EXE的可执行文件
5.批文件命令:CALL,ECHO,FOR,GOTO,IF,PAUSE,REM,SHIFT
6.其他的批文件

二、

二、
批处理文件命令

BATCH DOS 命令
1.功能:
批处理命令是存储在一个特殊的批处理文件(Batch File)中的DOS命令。当执行一个
批处理文件时,DOS将依次执行文件内所存储的各项DOS命令。
2.格式:
[d:][path][filename.bat][parameters]
3.说明:
①、批处理文件的扩展名应为.BAT。
②、当执行批处理文件时,您可将参数(parameters)传给一名称为file-name.bat的
文件,给予不同的参数,将可以执行类似的工作。
③、如果要停止批处理文件的动作,只要按下ctrl+break二键,即可停止正在执行
的命令,并且出现下述信息:
terminate batch job?(Y/N)
如果按下Y键就可以终止批处理文件的执行工作。如果按N键,那系统将会继续执行
其它的批处理文件中的命令。
4.范例:
①、如果在test.bat文件内包括一些替换参数,将使得在执行时,可以使用您所提
供的值来替换它。例如:
copy %1.mac %2.mac
type %2.prn
type %0.bat
%0,%1,%2这三个可以被代换的参数,于执行时将使用批处理文件时的三个参数顺序
依次来代换之。
%0参数永远使用批处理文件的文件名来取代。
在一个批处理文件内最多可以使用10个替换参数(%0到%9)
②、当您要执行test.bat的批处理文件时,系统将依照%1,%2等顺序给予适当的参数
。例如:
A:\>test a:prog1 b:prog2
于是系统将以test代表%0,以a:\prog1代表%1,以b:\prog2代表%2因此在执行此命
令时,就相当于直接在键盘上依次输入下述DOS命令一样:
copy a:\prog1.mac b:\prog2.mac
type b:\prog2.prn
typt test.bat
③、批处理文件亦可使用DOS的环境变量。环境变量于使用时前后都要加上一个%符
号。例如要取用DOS PATH的值,您必需输入%PATH%。下例是先假设将变量destination定
义为一台磁盘驱动器代码:
SET destination=C:于是执行以下所述命令
ECHO dot here>%destination%FILE1 (必须在批处理文件中执行)
执行之后,C磁盘的file1文件内将会存在dot here字符串。

CALL 批处理文件命令
1.功能:
您可以在批处理文件里面调用令一个批处理文件,执行完毕后在继续执行原来的这
个批处理文件内的剩余命令。
2.格式:
CALL[d:][path][filename.bat][argument]
3.说明:
①、[argument]参数:指定经由批处理文件所要求的任何命令行信息;它可包含开
关选择项、文件指定、变量%1至%9以及其它像%baud%这样的变量。
②、CALL命令可以在批处理文件的任何位置,只要执行时不要超过内存容量即可。
③、批处理文件也可以调用自己本身,但必须确定最后仍可以结束才好。
④、CALL命令不可以与重定向输入字符(如:<)以及数据管道字符(如:|)合用。
4.范例:
①、现有main.bat批处理文件内容如下所述:
REM I am ist batch file
REM go to 2nd batch file
CALL a2
REM now come back!
REM END
②、其中A2.bat批处理文件内容如下所述:
REM I am 2nd batch file
REM I will back to main batch file
③、执行时
A:\>main (执行main.bat)
A:\>REM I am ist batch file (main.bat前两行)
A:\>REM go 2nd batch file
A:\>CALL A2 (由main.bat中调用a2.bat)
A:\>REM I am 2nd batch file (执行a2.bat文件的内容)
A:\>REM I will back to main batch file
A:\>REM now come back! (a2.bat结束后返回main.bat
A:\>REM END 继续执行其余命令)

CHOICE选择键组命令 批处理文件命令
1.功能:
此命令将显示指定的提示并暂停让用户在指定的键组中做选择,然后返回一个ERRO
RLEVEL参数给批处理程序。您只能在批处理程序中使用本命令。
2.格式:
[d:][path]CHOICE[/C[:]KEYS][/N][/S][/T[:]C\’nn][test]
3.说明:
①、/C[:]keys参数:在提示中指定允许可用的键。当显示时,keys将以逗黠分开并
放置于括弧中,而且其后将会加上问号。如果您并无指定/C参数,则CHOICE将会使用YN
来当做默认值。冒号(:)是可有可无的。
②、/N参数:使CHOICE不显示提示,但是提示前的文字仍会显示。如果您指定此参
数,则指定键仍然有效。
③、/S参数:将导致CHOICE会区分大小写。如果此参数未被指定,则CHOICE将接受
用户指定的任意键值的大写或小写。
④、/T[:]C\’nn参数:在默认指定键之前,使CHOICE在指定的秒数中暂停。/T参数可
用的值如下所示:
c—nn秒后,指定的字符将为默认的。字符必须是/c参数中所指定的选择组。
nn–指定暂停的秒数。可接受0到99之间。如果指定0,则在默认之前将不会有暂停。
⑤、[test]参数:您想在提示符前显示的字符。假如您包含斜线(\)做为提示前字
符的一部分时,则必须加引号。如果您并无提示字符,则CHOICE将仅显示提示符。您所
分派的第一个键将为1,第二个键将为2……余此类推。如果用户按下了一个未分派到的
键,则CHOICE将发出一警告声响。如果CHOICE检测到一个错误的情况,那么它将返回一
ERRORLEVEL值为255的值;如果使用者按下了Crtl+Break二键或Ctrl+c二键,则CHOICE将
返回一ERRORLEVEL值为0的值。
4、范例:
这个CHIOCE命令最有用的地方就是用在批处理文件设计中。它将让用户按下指定的
按键后,执行某一段在批处理文件中的命令。例如:下面是包含CHOICE命令的TEST.BAT
文件内容:
@echo off
cls
echo. ┐
echo 1.defragment │
echo 2.MSD ├─显示这些字符
echo 3.Anti-Virus │
echo. ┘
choice/c:123/t:1,10 将出现要您选择1或者2或者3的提示字符,如果等10秒后,用
户尚未键入1或2或3中任一字符,则自动键入1。
if errorlevel 1 goto defragmant 当用户在上述键入1时,将寻找:defragment段来执
行defrag程序。
if errorlevel 2 goto msd 当用户在上述键入2时,将寻找:msd段来执行msd程序。
if errorlevel 3 goto av 当用户到上述键入3时,将寻找:av段来执行msav程序。
:defragment ┐
defrag ├:defragment段
goto end ┘
:msd ┐
msd ├:msd段
goto end ┘
:av ┐
msav ├:av段
goto end ┘
:end 结束

ECHO 批处理文件命令
1.功能:
允许批处理文件执行时显示或不显示命令本身,但对于命令的执行则无影响。
2.格式:
ECHO [on|off]
ECHO [message]
3.说明:
①、ECHO命令在启动或系统重置时,均默认为on,而可将每一批处理命令在执行同
时,显示在输出设备(屏幕)上。
②、当ECHO命令设定为off时在批处理命令执行时,将不显示该命令内容,但不影响
执行结果。
③、如果您指定了ECHO message,则不论是ECHO on 或ECHO off,message信息皆会
显示在标准输出设备(屏幕)上。
④、如果ECHO后面未加任何字符,如on、off或message,则只会显示出ECHO当前是
在on或off的状态。
4.范例:
REM 范例:①
ECHO off
ECHO piping symbol”\”ECHO redirect symbol”>/”
“/”及“>”在DOS命令里有其特殊的意义,如果要让DOS不处理时,则需使用双引
号括起来。
REM 范例: ②
@ECHO off
@REM THIS LINE WILL NOT DISPLAY
REN THIS LINE WILL BE DISPLAYED
@file1
上例中,命今前有@符号,其命令行本身将不会被显示出来,其余的命令行都将被显
示出来。
REM 范例:③
@ECHO off
DIR *.TXT
执行的结果如下:
Volume in drive A is ABC
Directory of A:\
TEST1 TXT 13 06-26-90 4:03P
TEST2 TXT 13 06-26-90 4:03P
TEST3 TXT 13 06-26-90 4:04P
3 File(s) 310272 bytes free
连ECHO off 命令本身亦不显示。

FOR 内部命令、批处理文件命令
1.功能:
可以让我们反覆地执行DOS的命令。
2.格式:
在批处理文件中:
FOR [%%c] in(set) DO [command][arguments]
在MS-DOS命令行中:
FOR [%c] in(set) DO [command][arguments]
3.说明:
①、[%%c]或[%c]参数:将顺序地得到(set)这个集合中的各个元素来作为它的值,
当得到一个值之后,就执行COMMAND此一DOS命令。
②、(set)中可包含*、?、/等通配符,那么[%%c]参数就会被设置成磁盘中能够匹配
引指定的第一个文件名称,同时亦可使用路径。
③、[command]参数:指定您希望执行在每一包含在(set)中文件命令。
④、[arguments]参数为:[command]参数指定选择项。
4.范例:
①、如果一批处理文件中含有下述命令:
FOR %%F IN (TEST1.DBF TEST2.DBF TEST3.DBF) DO DEL %%F
则执行时,将有下述的结果:
DEL TEST1.DBF
DEL TEST2.DBF
DEL TEST3.DBF
②、如果批处理文件中含有下述的命令:(在TEST.BAT内)
FOR %%F IN (%1 %2 %3 %4 %5) DO DEL %%F
则在执行时执行下列命令,将有与前项相同的结果:
A>TEST TEST1.DBF TEST2.DBF TEST3.DBF
③、如果欲在DOS下直接执行此命令,则%%c只要改为%c的形式即可。

GOTO 内部命令、批处理文件命令
1.功能:
将DOS控制权转移到某标号(LABEL)中,继续往后面执行。在批处理文件中的一个
标号是以一个冒号(:)开头,其后跟着一个标号名称(LANEL NAME)所组成。
2.格式:
GOTO label
3.说明:
①、GOTO label会造成接着执行标号label那一行的命令。
②、如果label未被定义,则当前这一个批处理文件的动作就会停止,并显示label
notfound 信息。
③、批处理文件中的标号名称是由前面8个字来定义的。
④、批处理文件的标号是永远不会显示出来的。所以未引用的标号可用来作为一些
注解。
4.范例:
TEST.BAT 文件,内容如下:
@ECHO OFF
GOTO SECOND
:FIRST
REM I AM FIRST
:SECOND
REM I AM SECOND
执行结果如下:
REM I AM SECOND

IF 内部命令、批处理文件命令
1.功能:
使DOS可以有条件地执行命令。
2.格式:
IF[not] errorlevel number command
IF[not] [string1]==[string2] command
IF[not] exist filename.ext command
3.说明:
①、[not]参数:是一个可选择使用的条目,使用时会将其后面条件的结果再求一个
相反的结果。
②、errorlevel number:errorlevel 是DOS产生出来的一个退出码。如果退出码大
于或等于number(指定一个十进制值),则此条件成立,系统即可执行后面指定的comman
d。
注意:测试退出码时要由大到小来测试,因为退出码只要测到大于或等于指定的值
时,该条件即成立。
③、[string1]==[string2]:string1及string2皆为字符的数据,英文字母的大小
写将视为不同。当[string1]及[string2]内容完全相同时,则此条件成立,并执行后面
指定的command。此条件中的等号(=)必须要有两个。
④、exist filename.ext:如果指定的文件存在时,则所得的结果为“真”,否则
为“假”。若为真,则系统即执行后面指定的command。
⑤、IF命令为一个分支命令。condition是一个条件,command是根据条件成立时才
去执行的命令。若不成立时则往下继续执行次一个批处理文件命令。
⑥、IF errorlevel 主要是用于配合自己的程序,并于执行完毕后设置一个错误代
码(errorcode),以便与IF errorlevel命令一起使用。
4.范例:
REM 范例: ①
@ECHO OFF MYPROG1
IF ERRORLEVEL 2 GOTO 2
IF ERRORLEVEL 1 GOTO 1
GOTO EXTI
:L1
ECHO DATA ERROR
GOTO EXIT
:L2
ECHO PROGRAM CANCEL
:EXIT
上例中MYPROG1为一程序,在执行时如果发生退出码时,则表示该程序未执行成功。

REM 范例:②
@ECHO OFF
IF “%1″==”” GOTO EXIT
IF %1==1 GOTO L1
IF %1==2 GOTO L2
GOTO EXIT
:L1
ECHO I AM L1
GOTO EXIT
:L2
ECHO I AM L2
:EXIT
本例中,””(空字符串)、1、2是指定要与%1参数比较诉字符串。

REM 范例:③
@ECHO OFF
IF NOT EXIST PE2.EXE GOTO EXIT
PE2
GOTO END
:EXIT
ECHO PE2.EXE NOT FOUND!
:END
本例中,先检查PE2.EXE文件是否存在,不存在时则显示一个找不到的信息后结束。
如果找到时则执行该程序后结束。

PAUSE 内部命令、批处理文件命令
1.功能:
暂时停止系统命令的执行并显示下列信息:
strike a eky when ready……
2.格式:
PAUSE
3.说明:
①、PAUSE命令可以在DOS执行一个命令时暂停,使您有机会来更换盘片。按下任何
一个键后,即可让DOS继续执行下一个命令。
②、执行PAUSE命令时,系统会暂停;如果您要终止执行此批处理文件,则您可按下
Ctrl+Break二键,接头按下Y,即可终止执行,但如果于此时按下N,则系统将继续执行
其它命令。
4.范例:
PAUSE1.BAT 文件,内容如下:
@ECHO OFF
@ECHO I am first
PAUSE
@ECHO ON
@ECHO I am second
@ECHO Please put a new diskette into drive A
PAUSE
则其执行结果如下所示:
A:\>PAUSE1
I am first
strike any key when ready…
I am second
Please put a new diskette into drive A
strike any key when ready…

REM 批处理文件命令、配置文件命令
1.功能:
可以在配置文件(CONFIG.SYS)或批处理文件(.BAT)中加上注解说明。
2.格式:
REM [comment]
3.说明:
①、[comment]参数:表示注解行,不会被当作命令执行。
②、您可在配置文件或批处理文件中将命令的功能注解加注在其中,以供日后引用。
③、CONFIG.SYS文件中的REM与在批处理文件中REM,皆可为注解的命令行。但是在
批处理文件中,REM会被显示出来,而在CONFIG.SYS的REM命令行在起动DOS时并不会被显
示出来。
4.范例:
REM this is a sample CONFIG.SYS FOR DBASE 3
FILES=25
BUFFERS=20

SHIFT 内部命令、批处理文件命令
1.功能:
使得DOS命令行上可以使用超过10个(%0到%9)以上的可替代参数。
2.格式
SHIFT
3.说明
1.可替代参数的编号是%0–%9,如果要在一个命令行使用超过10个可以被代换的
参数,则您可使用SHIFT命令来突破此限制。
2.每当执行SHIFT一次,所有命令行上的所有参数将向左移动一位。 %1的内容将
为%2的内容所取代…,%9内容则由新的参数递补。
3.%0表示批处理文件本身的名称,永远不变,所以每次执行时您可以加上 9个参
数在批处理文件名后。若要增加一个参数,则您将需要使用这个SHIFT命令来移位,才可
取得第十个参数。
4.范例
1.SHIFT.BAT文件,内容如下:
@ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9
SHIFT
@ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9
SHIFT
@ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9
2.执行结果如下:
A:\>SHIFT 1 1 2 3 4 5 6 7 8 9 10 11(先后跟随11个参数)
1 2 3 4 5 6 7 8 9 (取最前面9个参数)
A:\>SHIFT (移位)
2 3 4 5 6 7 8 9 10 (取另外9个参数)
A:\>SHIFT (移动)
3 4 5 6 7 8 9 10 11 (取另外9个参数)

版权声明:本文为jack_blog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jack_blog/articles/67008.html