批處理語言規則–編輯bat檔案

來源:互聯網
上載者:User

批處理,也稱為批處理指令碼,英文譯為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為副檔名的檔案的內容。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.