批次檔(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自帶的「記事本」即可編寫。而一些代碼編輯器也為批處理文件提供了語法高亮的支持,批處理文件的內部命令,以及一些常用的系統命令都能夠高亮標記出來。

參見