四、批处理文件命令 
.bat 文件,大小写都不能错,后缀为 .exe 的才可以省略后缀,像 .msc 后缀不可以省去

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键就可以终止批处理文 闹葱泄ぷ鳌H绻 碞键,那系统将会继续执行其它的批处理文件中的命令。 

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.功能: 此命令将显示指定的提示并暂停让用户在指定的键组中做选择,然后返回一个ERRORLEVEL参数给批处理程序。您只能在批处理程序中使用本命令。 

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