批處理,也稱為批處理腳本,英文譯為BATCH,批處理檔案字尾BAT就取的前三個字母。它的構成沒有固定格式,隻要遵守以下這條就ok了:每一行可視為一個指令,每個指令裡可以含多條子指令,從第一行開始執行,直到最後一行結束,它運作的平台是DOS。批處理有一個很鮮明的特點:使用友善、靈活,功能強大,自動化程度高。
首先,批處理檔案是一個文本檔案,這個檔案的每一行都是一條DOS指令(大部分時候就好像我們在DOS提示符下執行的指令行一樣),你可以使用DOS下的Edit或者Windows的記事本(notepad)等任何文本檔案編輯工具建立和修改批處理檔案。
其次,批處理檔案是一種簡單的程式,可以通過條件語句(if)和流程控制語句(goto)來控制指令運作的流程,在批進行中也可以使用循環語句(for)來循環執行一條指令。當然,批處理檔案的程式設計能力與C語言等程式設計語句比起來是十分有限的,也是十分不規範的。批處理的程式語句就是一條條的DOS指令(包括内部指令和外部指令),而批處理的能力主要取決于你所使用的指令。
第三,每個編寫好的批處理檔案都相當于一個DOS的外部指令,你可以把它所在的目錄放到你的DOS搜尋路徑(path)中來使得它可以在任意位置運作。一個良好的習慣是在硬碟上建立一個bat或者batch目錄(例如C:\BATCH),然後将所有你編寫的批處理檔案放到該目錄中,這樣隻要在path中設定上c:\batch,你就可以在任意位置運作所有你編寫的批處理程式。
批處理的作用:簡單的說,批處理的作用就是自動的連續執行多條指令。
常用指令:echo、@、call、pause、rem、::
1. echo
echo 一個作用是作為開關指令,用于控制是否顯示目前執行指令, 執行echo off 會将顯示關閉,其後面的所有指令都将不顯示指令本身,隻顯示指令執行後的結果,執行echo on指令 會将顯示打開,既顯示目前指令本身也實作執行後的結果
echo的另一個作用是用來顯示資訊
2. @
其功能與echo off類似,但其隻能放在目前指令行最前面,控制這一行運作時不顯示,是以我們通常看到的批處理檔案,都會在檔案開頭加上“@echo off",進而實作不顯示所有指令行。
3. call
通過call調用另一個批處理檔案(如果不用call而直接調用别的批處理檔案,那麼執行完那個批處理檔案後将無法傳回目前檔案并執行目前檔案的後續指令)。
4.pause
運作此句會暫停批處理的執行并在螢幕上顯示 Press any key to continue...的提示,等待使用者按任意鍵後繼續
5. rem
用rem表示此指令後的字元為解釋行(注釋),不執行,隻是給自己今後參考用的(相當于程式中的注釋)。
6. ::
注釋指令,在批處理腳本中和rem 指令等效。它後面的内容在執行時不顯示,也不起任何作用,因為它隻是注釋,隻是增加了腳本的可讀性,和C 語言中的類似。
批處理檔案的參數
批處理檔案還可以像C語言的函數一樣使用參數(相當于DOS指令的指令行參數),需要用到一個參數表示符“%”。%[1-9]表示參數,參數是指在運作批處理檔案時在檔案名後加的以空格(或者Tab)分隔的字元串。變量可以從%0到%9,%0表示批處理指令本身,其它參數字元串用%1到%9順序表示。
特殊指令:if、goto(:)、choice、for
1. if
條件語句,用來判斷是否符合規定的條件,進而決定執行不同的指令,有三種格式:
1) if [not] "參數"=="字元串"待執行的指令
2) if [not] exist[路徑\]檔案名待執行的指令
3) if errorlevel<數字>待執行的指令
很多DOS程式在運作結束後會傳回一個數字值用來表示程式運作的結果(或者狀态
),通過if errorlevel指令可以判斷程式的傳回值,根據不同的傳回值來決定執行不同的指令(傳回值必須按照 從大到小的順序排列)。如果傳回值等于指定的數字,則條件成立,運作指令,否則運作下一句。
2. goto(:)
跳轉指令你批處理檔案運作到這裡将跳到goto所指定的标号(标号即label,标号用 : 後跟标準字元串 來定義)處,goto語句一般與if配合使用,根據不同的條件來執行不同的指令組。另外,goto也可以用于提前結束程式
3. choice
使用此指令可以讓使用者輸入一個字元(用于選擇),進而根據使用者的選擇傳回不同的 errorlevel,然後于if errorlevel配合,根據使用者的選擇運作不同的指令。
注意:choice指令為DOS或者Windows系統提供的外部指令,不同版本的choice指令文法會稍 有不同,請用choice /?檢視用法。
choice的指令文法(該文法為Windows 2003中choice指令的文法,其它版本的hoice
的指令文法與此大同小異): CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
描述: 該工具允許使用者從選擇清單選擇一個項目并傳回所選項目的索引。
參數清單:
/C choices指定要建立的選項清單。預設清單是 "YN"。
/N 在提示符中隐藏選項清單。提示前面的消息得到顯示,選項依舊處于啟用狀态。
/CS 允許選擇分大小寫的選項。在預設情況下,這個工具是不分大小寫的。
/T timeout 做出預設選擇之前,暫停的秒數。可接受的值是從 0 到 9999。如果指定了 0,就不會 有暫停,預設選項 會得到選擇。
/D choice 在nnnn秒之後指定預設選項。字元必須在用 /C 選項指定的一組選擇中; 同時,必須用 /T 指定nnnn。
/M text 指定提示之前要顯示的消息。如果沒有指定,工具隻顯示提示。
/? 顯示幫助消息。
4. for
循環指令,隻要條件符合,它将多次執行同一指令。
FOR %%variable IN (set) DO command [command-parameters]
%%variable 指定一個單一字母可替換的參數。
(set) 指定一個或一組檔案。可以使用通配符。
command 指定對每個檔案執行的指令。
command-parameters 為特定指令指定參數或指令行開關。
例如一個批處理檔案中有一行:
for %%c in (*.bat *.txt) do type %%c
則該指令行會顯示目前目錄下所有以bat和txt為擴充名的檔案的内容。