User:LumaEngine/沙盒

批次檔(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自带的“记事本”即可编写。而一些代码编辑器也为批处理文件提供了语法高亮的支持,批处理文件的内部命令,以及一些常用的系统命令都能够高亮标记出来。

參見