Friends

bat批处理命令

批处理语法

echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@与echo
off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue... 的提示,等待用户按任意键后继续
rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。

@echo off            //不显示后续命令行及当前命令行
dir c://*.* >a.txt       //将c盘文件列表写入a.txt 
call c://ucdos//ucdos.bat   //调用ucdos 
echo 你好            //显示"你好" 
pause              //暂停,等待按键继续 
rem 准备运行wps         //注释:准备运行wps 
cd ucdos            //进入ucdos目录 
wps               //运行wps

批处理参数

%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。

@echo off
type %1 
type %2

那么运行C://>t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt

批处理条件判断

-if [not] "参数" == "字符串" 待执行的命令,如if "%1"=="a" format a:

参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。

-if [not] exist [路径//]文件名 待执行的命令,如if exist c://config.sys type c://config.sys

如果有指定的文件,则条件成立,运行命令,否则运行下一句。

-if errorlevel <数字> 待执行的命令,如if errorlevel 2 goto x2

很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。

goto

跳到goto所指定的标记处

goto end 

:end 
echo this is the end 

call命令

从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。

call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] 
Written on September 6, 2015