if goto choice for 是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。 if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: 1、if "参数" == "字符串" 待执行的命令 参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号) 如if "%1"=="a" format a:
例如,test.bat的内容如下: @echo off choice /c:dme defrag,mem,end if errorlevel 3 goto defrag 应先判断数值最高的错误码 if errorlevel 2 goto mem if errotlevel 1 goto end
:defrag c:/dos/defrag goto end
:mem mem goto end
:end echo good bye
此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。
for 循环命令,只要条件符合,它将多次执行同一命令。
格式FOR [%%f] in (集合) DO [命令] 只要参数f在指定的集合内,则条件成立,执行命令
如果一条批处理文件中有一行: for %%c in (*.bat *.txt) do type %%c 含义是如果是以bat或txt结尾的文件,则显示文件的内容。
DEBUG -A -166C:0100 MOV DX,111 -166C:0103 MOV AH,09 -166C:0105 INT 21 -166C:0107 MOV AH,01 -166C:0109 INT 21 -166C:010B MOV AH,4C -166C:010D INT 21 -166C:010F INT 20 -166C:0111 DB '******************************'0D 0A -166C:0131 DB '* 1.Turbo Pascal 5.00 *'0D 0A -166C:0151 DB '* 2.Turbo Basci 1.00 *'0D 0A -166C:0171 DB '* 3.Turbo Prolog 2.00 *'0D 0A -166C:0191 DB '* 4.Turbo C 2.00 *'0D 0A -166C:01B1 DB '* 0.Exit *'0D 0A -166C:01B1 DB '******************************'0D 0A -166C:01F1 DB 'Your choice(0..4) : '24 0D 0A 1A -166C:0209 -R CX CX 0000 :108 -N MENU.COM -W Writing 0108 bytes -Q @ECHO OFF: START CLS MENU IF ERRORLEVEL 52 GOTO C IF ERRORLEVEL 51 GOTO PRO IF ERRORLEVEL 50 GOTO BAS IF ERRORLEVEL 49 GOTO PAS IF ERRORLEVEL 48 GOTO EX CLS GOTO START AS CD /TP5.00 TURBO CD / GOTO START :BAS CD /TB TB CD / GOTO START RO CD /TPROLOG PROLOG CD / GOTO START :C CD /TURBOC TC CD / GOTO START :EX @ECHO ON
MAKEOBJ.BAT C.BAT @ECHO OFF ECHO COMPILE FORTRAN PROGRAMS. FOR %%A IN (*.FOR) DO COMMAND /C C %%A ECHO FINISH ! @ECHO ON @ECHO OFF ECHO ------ COMPILE %1 ------ FOR1 %1; >NUL FOR2 >NUL @ECHO ON