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

參見