簡介
Batch file
在DOS,OS/2和微軟Windows作業系統中,批處理檔案(batch file)是包含一系列命令的文本檔案,由命令解釋器解釋執行。批處理檔案運行時,shell程式(通常是 COMMAND.COM 或 cmd.exe)讀取檔案並逐行執行命令。通常用於替代系統管理員來自動執行一些單調的工作。
DOS批處理檔案擴展名.bat(或.BAT因為檔案名稱稱在DOS,Windows,OS/2中是大小寫不敏感的。)。對於其他的環境可能會有不同的擴展名。比如,在Windows NT,OS/2中擴展名為.cmd,在 4DOS及相關的shell中為.btm。對於直接執行.bat,.cmd檔案來說是沒有區別的。而且Windows 9x系列只認.bat擴展名。
歷史
命令解釋器提供兩種截然不同的工作模式:互動模式(用戶輸入在命令提示符下輸入命令後立即執行)和批處理模式(用於執行定義好的命令序列)。這兩種概念源於Unix shells,以及1980年代早期的許多基於文本模式的命令行界面,比如,數字設備公司發布的CP/M系統,都從TOPS-10和TOPS-20中獲得了很多靈感。
微軟公司的DOS和Windows批處理編程隨著作業系統產品的更新而演化。儘管在類Unix作業系統中批處理檔案是shell腳本的同義詞,但是有限的語法和命令並不能夠使它滿足一般的編程需要。為了化解這些限制,各種各樣非微軟官方的解釋程式提供了更強大的命令,諸如Norton Utilities(BE或Batch Enhancer),1989年推出的4DOS,以及後來的4NT。
DOS
MS-DOS以及DOS兼容產品的批處理程式解釋器是COMMAND.COM。MS-DOS的批處理檔案由一系列相對簡單的命令組成,直接交由COMMAND.COM(內部命令)來執行。其它的那些公用程式都是作為獨立的可執行程式(外部命令)。最常見的批處理檔案是AUTOEXEC.BAT檔案,在系統的引導階段自動執行。
這一個批處理分支隨著MS-DOS的發行而演變,Windows 95,Windows 98,一直到Windows Me都是基於MS-DOS。
現代Windows
Windows XP和Windows Vista不是基於MS-DOS,而是構建在Windows NT核心上。基於NT核心的系統,默認使用CMD.EXE命令行解釋器。通常與MS-DOS解釋器兼容,同時提供更多的命令和功能。(MS-DOS的腳本解釋程式COMMAND.COM仍然存在基於NT核心的系統之上,以保證更好的向後兼容。)
對於Windows 98以及更新的系統,使用Windows Script Host可以用來完成更複雜的任務。用VBScript,JScript和相關的腳本語言編寫的批處理程式,更類似於傳統的程式語言,而且沒有命令行界面。2006年,微軟推出了另一款腳本工具,Windows PowerShell。可以用於Windows XP及其以上的系統。提供了命令行下的互動操作模式
OS/2
IBM OS/2 作業系統支持DOS風格的批處理檔案,同時也提供對於更高級的腳本語言REXX的支持。
舉例
@echo off
echo Hello World!
echo.
pause
pause>NUL
exit
這段批處理程式首先設定不顯示提示符信息,然後顯示 "Hello World!" 文本,緊接著輸出一個空行,pause命令會提示
"按任意鍵來繼續." 按任意鍵繼續執行,然後不顯示任何信息,按任意鍵繼續,然後退出