批处理文件

批处理文件(Batch file)
扩展名
.bat .cmd .btm
格式类型脚本语言
作为容器Shell script

批处理文件(英語:Batch file),又称批次档,在DOSOS/2微软视窗系统中,是一种用来当成脚本语言运作程序的文件。它本身是文本文件,其中包含了一系列让具备命令行界面解释器读取并执行的指令。它相当于是类Unix系统下的Shell script

DOSWindows 9x操作系统家族中,批处理文件的文件扩展名为.bat。在OS/2Windows NT操作系统家族,批处理文件的文件扩展名为.cmd。当执行批处理文件时,shell程序(通常是COMMAND.COMcmd.exe)会读取文件内容,之后通常是以逐行的方式,执行它的命令。

语言特性

批处理文件的每一条语句都是一个命令,换言之就是一个可以赋予参数运行的程序。这与Shell是相通的。

流程控制

注释

批处理文件的注释有两种方式:第一种是使用rem命令,其参数为注释内容;第二种是借用跳转标记的语法,因为跳转标记在批处理中不会被执行,可以以半角冒号(:)开头书写注释,类似于C语言的“//”与Python的“#”。

但是,有别于其他脚本语言,批处理并不支持行内注释。

以下的例子综合演示了两种注释:

rem 这是一个用rem命令写的注释
:这是一个用跳转标记写的注释

回显控制

默认情况下,批处理文件的每条命令在运行时都会回显出来。回显,指的是命令的内容出现在提示符后,被系统输出。这一过程类似于我们手工在命令提示符中输入命令并运行,命令的文本是可见的。

但是,很多时候,在使用批处理设计一些交互式程序时,我们不希望回显干扰屏幕的显示。这时就可以对回显的内容进行控制。方法有两种:

局部关闭回显
只需在需要禁用回显的命令前加上“@”符号,那么该条命令就不会有回显。
全局关闭回显
使用命令“echo off”,其后的所有语句都不会有回显。若要重新打开,使用“echo on”。

值得注意的是,“echo off”语句本身也会有回显。因此通常为了完全关闭回显,也会在其前面加上“@”符号。

对其他批处理文件的调用

使用“call”语句,可以在一个批处理文件中调用其他的批处理。

本地化操作

批处理的Hello World程序

将下列代码保存为一个批处理文件,双击或在命令解释器CMD或COMMAND.COM中运行。

@echo off
echo Hello world!
pause

编辑器支持

批处理文件本质上是纯文本文件,使用Windows自带的“记事本”即可编写。而一些代码编辑器也为批处理文件提供了语法高亮的支持,批处理文件的内部命令,以及一些常用的系统命令都能够高亮标记出来。

参见