批次檔
此條目或其章節需要精通或熟悉相關主題的編者參與及協助編輯。 (2014年9月26日) |
此條目沒有列出任何參考或來源。 (2014年9月26日) |
副檔名 |
.bat .cmd .btm |
---|---|
格式類型 | 手稿語言 |
作為容器 | Shell script |
批次檔(英語:Batch file),又稱批處理文件,在DOS、OS/2、微軟視窗系統中,是一種用來當成手稿語言運作程式的檔案。它本身是文字文件,其中包含了一系列讓具備命令列介面的直譯器讀取並執行的指令。它相當於是類Unix系統下的Shell script。
在DOS及Windows 9x作業系統家族中,批次檔的副檔名為.bat。在OS/2及Windows NT作業系統家族,批次檔的副檔名為.cmd。當執行批次檔時,shell程式(通常是COMMAND.COM或cmd.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內建的「記事本」即可編寫。而一些代碼編輯器也為批次檔提供了語法突顯的支援,批次檔的內部命令,以及一些常用的系統命令都能夠突顯標記出來。