处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为.bat或.cmd。 

在命令提示下键入批处理文件的名称,或者直接双击该批处理文件,系统就会调用cmd.exe按照 

该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本), 

可以简化日常或重复性任务。 


简单批处理内部命令 


1、echo命令 

当程序运行时,显示或隐藏批处理程序中的正文,也可用于允许或禁止命令的显示。 

在运行批处理程序时,DOS一般在屏幕上显示批处理程序中的命令。使用ECHO命令可关闭此功能。 


语法 

echo [{on|off}] [message] 


参数 

on|off 

指定是否允许命令的显示。若要显示当前的echo的设置,可使用不带参数的echo命令。 


message 

指定在DOS屏幕上显示的正文。 


eg: 

@echo off //不显示后续命令行及当前命令行 

echo hello world //显示hello world 


2、@命令 

表示不显示@后面的命令。 


eg: 

@echo off 

@echo 北京欢迎你! //显示北京欢迎你! 


3、Goto命令 

指定跳转到标签,找到标签后,然后处理从程序下一行开始的命令。 

语法: 

goto label 


参数: 

lable 

是指参数,指定所要转向的批处理程序中行。标签的名字可以随便起,但最好是有意义的字母, 

字母前加个:,用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到哪里。 


eg: 

@echo off 

goto test 

echo 北京欢迎你! 

:test 

echo 我们都是中国人! 


显示结果:我们都是中国人! 


4、Rem命令 

注释命令,一般是用来给程序加上注释的,在程序执行的时候它不会执行,也不会被显示,只是起一个注释的作用,便于 

别人阅读和你自己日后修改。 


eg: 

@rem THIS IS THE DESCRIPTION. 


5、call命令 

call命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行时也会执行自己的批处理。 

eg: 

b.bat内容如下: 

echo 北京欢迎你 


a.bat内容如下: 

@echo off 

echo 我们都是中国人 

call b.bat 


执行结果如下: 

C:\>a.bat 

我们都是中国人 

北京欢迎你 


6、pause命令 

停止系统命令的执行并显示下面的内容。 


7、 IF 

IF 条件判断语句,语法格式如下: 

IF [NOT] ERRORLEVEL number command 

IF [NOT] string1==string2 command 

IF [NOT] EXIST filename command 

说明: 

[NOT] 将返回的结果取反值即“如果没有”的意思。 

ERRORLEVEL 是命令执行完成后返回的退出值 

Number 退出值的数字取值范围0~255。判断时值的排列顺序应该又大到小。返回的值大于或等于指定的值时条件成立。 

string1==string2 string1和string2都为字符的数据,英文字符的大小写将看做不同,这个条件中的等于号必须是2个(绝对相等),条件想等后即执行后面的 command 

EXIST filename 为文件或目录存在的意思。 

IF ERRORLEVEL这条语句必须放在某一个命令后面。执行命令后由IF ERRORLEVEL来判断命令的返回值。 


(1)、 IF [NOT] ERRORLEVEL number command 

检测命令执行完后的返回值做出判断。 


eg: 

test.bat内容如下 

@echo off 

dir z: 

rem 如果退出代码为1(不成功)就跳至标题1处执行 

IF ERRORLEVEL 1 goto 1 

rem 如果退出代码为0(成功)就跳至标题0处执行 

IF ERRORLEVEL 0 goto 0 

:0 

echo 命令执行成功! 

Rem 程序执行完毕跳至标题exit处退出 

goto exit 

:1 

echo 命令执行失败! 

Rem 程序执行完毕跳至标题exit处退出 

goto exit 

:exit 

Rem 这里是程序的出口 


C:\>test.bat 


C:\>echo off 

系统找不到指定的路径。 

命令执行失败! 


(2)、 IF string1==string2 command 

检测当前变量的值做出判断 

eg:test.bat内容如下: 

ECHO OFF 

IF %1==2 goto no 

Echo 变量不相等! 

Goto exit 

:no 

echo 变量相等 

goto exit 

:exit 


C:\>test 3 


C:\>ECHO OFF 

变量不相等! 


C:\>test 2 


C:\>ECHO OFF 

变量相等 


特殊符号 


% 

批处理变量引导符,只是批处理中的参数而已。 

eg: 

@echo off 

ECHO %1 

ECHO %2 

ECHO %3 

显示结果: 

C:\>test 北京 上海 深圳 

北京 

上海 

深圳 


C:\>test dog cat 

dog 

cat 

ECHO 处于关闭状态。 


特殊符号 


:: 

注释命令,在批处理脚本中和rem命令等效。它后面的内容在执行时不显示,也不起任何作用,因为它只是注释, 

只是增加了脚本的可读性。和C语言中的类似。 



>与>> 

> 重置原文件,也就是会清除原有文件中的内容后把新内容写入,如果没有原文件就会创建一个文件。 

>>会另起一行追加新的内容到原文件中,而不会改动其中的原有内容。 

eg: 

test.bat的内容如下: 

echo echo This is a pipeline command example.> a.bat 

echo echo It is very easy? >> a.bat 

echo echo Believe your self! >> a.bat 

echo pause >> a.bat 

echo exit >> a.bat 


执行结果:C:\>test.bat 

打开a.bat显示结果如下: 

echo This is a pipeline command example. 

echo It is very easy? 

echo Believe your self! 

pause 

exit