BAT(批處理)文件編寫詳細(xì)手冊_第1頁
BAT(批處理)文件編寫詳細(xì)手冊_第2頁
BAT(批處理)文件編寫詳細(xì)手冊_第3頁
BAT(批處理)文件編寫詳細(xì)手冊_第4頁
BAT(批處理)文件編寫詳細(xì)手冊_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、BAT(批處理)文件編寫詳細(xì)手冊一、 批處理文件簡介首先,批處理文件是一個(gè)文本文件,這個(gè)文件的每一行都是一條DOS命令(大部分時(shí)候就好象我們在DOS提示符下執(zhí)行的命令行一樣),你可以使用DOS下的Edit或者Windows的記事本(notepad)等任何文本文件編輯工具創(chuàng)建和修改批處理文件。 其次,批處理文件是一種簡單的程序,可以通過條件語句(if)和流程控制語句(goto)來控制命令運(yùn)行的流程,在批處理中也可以使用循環(huán)語句 (for)來循環(huán)執(zhí)行一條命令。當(dāng)然,批處理文件的編程能力與C語言等編程語句比起來是十分有限的,也是十分不規(guī)范的。批處理的程序語句就是一條條的 DOS命令(包括內(nèi)部命令和外

2、部命令),而批處理的能力主要取決于你所使用的命令。 第三,每個(gè)編寫好的批處理文件都相當(dāng)于一個(gè)DOS的外部命令,你可以把它所在的目錄放到你的DOS搜索路徑(path)中來使得它可以在任意位置運(yùn) 行。一個(gè)良好的習(xí)慣是在硬盤上建立一個(gè)bat或者batch 目錄(例如C:/BATCH),然后將所有你編寫的批處理文件放到該目錄中,這樣只要在path中設(shè)置上c:/batch,你就可以在任意位置運(yùn)行所有你 編寫的批處理程序。 簡單的說,批處理的作用就是自動(dòng)的連續(xù)執(zhí)行多條命令。二、 批處理中常用命令:1. echo命令:表示顯示此命令后的字符。字符不需要使用引號(hào)。其中,%和兩個(gè)字符不能顯示。2. Echo o

3、ff命令:表示在此語句后所有運(yùn)行的命令都不顯示命令行本身。即關(guān)閉echo回顯功能??梢允褂胑cho on打開。3. 命令:它是加在每個(gè)命令行的最前面,表示運(yùn)行時(shí)不顯示這一行的命令行(只能影響當(dāng)前行)。4. call命令:調(diào)用另一個(gè)批處理文件(如果不用call而直接調(diào)用別的批處理文件,那么執(zhí)行完那個(gè)批處理文件后將無法返回當(dāng)前文件并執(zhí)行當(dāng)前文件的后續(xù)命令)。5. pause命令:運(yùn)行此句會(huì)暫停批處理的執(zhí)行并在屏幕上顯示Press any key to continue.的提示,等待用戶按任意鍵后繼續(xù)。如果不想顯示以上英文提示信息,可以這樣寫:pausenull6. rem命令:表示此命令后的字符為

4、解釋行(注釋),不執(zhí)行,只是給自己今后參考用的(相當(dāng)于程序中的注釋)。7. :命令:與rem命令等效。例1:用edit編輯a.bat文件,輸入下列內(nèi)容后存盤為c:/a.bat,執(zhí)行該批處理文件后可實(shí)現(xiàn):將根目錄中所有文件寫入 a.txt中,啟動(dòng)UCDOS,進(jìn)入WPS等功能。 批處理文件的內(nèi)容為: 命令注釋: echo off/不顯示后續(xù)命令行及當(dāng)前命令行 dir c:/*.* a.txt/將c盤文件列表寫入a.txt call c:/ucdos/ucdos.bat/調(diào)用ucdos echo 你好 /顯示你好 pause /暫停,等待按鍵繼續(xù) rem 準(zhǔn)備運(yùn)行wps /注釋:準(zhǔn)備運(yùn)行wps cd

5、 ucdos /進(jìn)入ucdos目錄 wps /運(yùn)行wps 三、 批處理文件的參數(shù):批處理文件還可以像C語言的函數(shù)一樣使用參數(shù)(相當(dāng)于DOS命令的命令行參數(shù)),這需要用到一個(gè)參數(shù)表示符%。%1-9表示參數(shù),參數(shù)是指在運(yùn)行批處理文件時(shí)在文件名后加的以空格(或者Tab)分隔的字符串。變量可以從%0到%9,%0表示批處理命令本身,其它參數(shù)字符串用%1到%9順序表示。 例2:C:根目錄下有一批處理文件名為f.bat,內(nèi)容為:echo offformat %1如果執(zhí)行C:/f a:那么在執(zhí)行f.bat時(shí),%1就表示a:,這樣format %1就相當(dāng)于format a:,于是上面的命令運(yùn)行時(shí)實(shí)際執(zhí)行的是fo

6、rmat a:例3:C:根目錄下一批處理文件名為t.bat,內(nèi)容為:echo offtype %1type %2那么運(yùn)行C:/t a.txt b.txt%1 : 表示a.txt%2 : 表示b.txt于是上面的命令將順序地顯示a.txt和b.txt文件的內(nèi)容。%0 這個(gè)不是返回參數(shù)的值了,他有兩層意思!第一層意思:返回批處理所在絕對路徑例子:echo offecho %0pause保存為test.BAT放在桌面運(yùn)行,會(huì)顯示如下結(jié)果C:Documents and SettingsAdministrator桌面test.bat他把當(dāng)前批處理執(zhí)行的所在路經(jīng)打印出來了,這就是返回批處理所在絕對路徑的意

7、思第二層意思:無限循環(huán)執(zhí)行BAT例子:echo offnet user%0保存為BAT執(zhí)行,他就會(huì)無限循環(huán)執(zhí)行net user這條命令,直到你手動(dòng)停止.%*參數(shù):返回參數(shù),不過他是一次返回全部參數(shù),不用分別%1,%2等一一返回。例子echo offecho %*同樣保存為test.bat 放到C盤進(jìn)入CMD,輸入cd c:然后輸入 test.bat 我是第一個(gè)參數(shù) 我是第二個(gè)參數(shù) 我是第三個(gè)參數(shù) 我是第四個(gè)參數(shù)可以看到他一次把全部參數(shù)都顯示出來了四、 自定義變量:自定義變量使用set命令。如:echo offset var=value /有空格的字符串也不需要引號(hào)。echo %var%paus

8、e其中var就是自定義的變量。五、 特殊命令(一) if命令if 是條件語句,用來判斷是否符合規(guī)定的條件,從而決定執(zhí)行不同的命令。 有三種格式:1. if not 參數(shù) = 字符串 待執(zhí)行的命令 /注意:為了防止參數(shù)為空的情況,一般會(huì)將參數(shù)與字符串用雙引號(hào)(或者其它符號(hào),注意不能使用保留符號(hào))括起來。 如:if %1=A 或者 if %1*=A*,這里*不是通配符。是要保證等號(hào)兩邊的字符一致。參數(shù)如果等于(not表示不等,下同)指定的字符串,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。例:if %1=a format a:2. if not exist 路徑/文件名 待執(zhí)行的命令如果有指定的文件,則

9、條件成立,運(yùn)行命令,否則運(yùn)行下一句。如: if exist c:/config.sys type c:/config.sys /表示如果存在c:/config.sys文件,則顯示它的內(nèi)容。3. if errorlevel 待執(zhí)行的命令很多DOS程序在運(yùn)行結(jié)束后會(huì)返回一個(gè)數(shù)字值用來表示程序運(yùn)行的結(jié)果(或者狀態(tài)),通過if errorlevel命令可以判斷程序的返回值,根據(jù)不同的返回值來決定執(zhí)行不同的命令(返回值必須按照從大到小的順序排列)。如果返回值等于指定的數(shù) 字,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。IFERRORLEVEL是用來測試它的上一個(gè)DOS命令的返回值的,注意只是上一個(gè)命令的返回值

10、,而且返回值必須依照從大到小次序順序判斷。如下的例子,先判斷返回值為1的,再判斷返回值為0的。IFERRORLEVEL1ECHO文件拷貝失敗 IFERRORLEVEL0ECHO成功拷貝文件如if errorlevel 2 goto x24. if number 比較符 value commandEQU 等于NEQ 不等于LSS 小于LEQ 小于或等于GTR 大于GEQ 大于或等于5. if defined test command /如果定了了變量test,則執(zhí)行command。如:if defined test echo It is defined.6. if 條件1 (command1)

11、else (command2) /條件1后的命令行必須有括號(hào)。在if后,若要執(zhí)行多條命令,可以將這些命令放在一對括號(hào)中,且左括號(hào)必須跟if關(guān)鍵字在同一行,如:cd /d :/slfslfsl if errorlevel 1 (mkdir d:error mkdir d:1 mkdir d:2)(二) goto命令批處理文件運(yùn)行到這里將跳到goto所指定的標(biāo)號(hào)(標(biāo)號(hào)即label,標(biāo)號(hào)用:后跟標(biāo)準(zhǔn)字符串來定義)處,goto語句一般與if配合使用,根據(jù)不同的條件來執(zhí)行不同的命令組。如: goto end :end echo this is the end 標(biāo)號(hào)用:字符串來定義,標(biāo)號(hào)所在行不被執(zhí)行。在

12、有多個(gè)標(biāo)號(hào)時(shí),每個(gè)標(biāo)號(hào)都要有g(shù)oto語句跳出,否則各個(gè)標(biāo)號(hào)程序會(huì)連續(xù)執(zhí)行。 注意: (1) 標(biāo)號(hào)前是ASCII字符的冒號(hào):,冒號(hào)與標(biāo)號(hào)之間不能有空格。 (2) 標(biāo)號(hào)的命名規(guī)則與文件名的命名規(guī)則相同。 (3) DOS支持最長八位字符的標(biāo)號(hào),當(dāng)無法區(qū)別兩個(gè)標(biāo)號(hào)時(shí),將跳轉(zhuǎn)至最近的一個(gè)標(biāo)號(hào)。(三) choice命令使用此命令可以讓用戶輸入一個(gè)字符(用于選擇),從而根據(jù)用戶的選擇返回不同的errorlevel,然后于if errorlevel配合,根據(jù)用戶的選擇運(yùn)行不同的命令。注意:choice命令為DOS或者Windows系統(tǒng)提供的外部命令,不同版本的choice命令語法會(huì)稍有不同,請用choice

13、/?查看用法。choice的命令語法(該語法為Windows 2003中choice命令的語法,其它版本的choice的命令語法與此大同小異): CHOICE /C choices /N /CS /T timeout /D choice /M text 描述: 該工具允許用戶從選擇列表選擇一個(gè)項(xiàng)目并返回所選項(xiàng)目的索引。 參數(shù)列表: /C choices 指定要?jiǎng)?chuàng)建的選項(xiàng)列表。默認(rèn)列表是 YN。 /即定義可選擇項(xiàng)/N 在提示符中隱藏選項(xiàng)列表。提示前面的消息得到顯示,選項(xiàng)依舊處于啟用狀態(tài)。 /即Y,N,C?列表將隱藏,但提示用戶選擇的信息將正常顯示。另外,/N必須用于/M參數(shù)之前。/CS 允許選擇

14、分大小寫的選項(xiàng)。在默認(rèn)情況下,這個(gè)工具是不分大小寫的。 /T timeout 做出默認(rèn)選擇之前,暫停的秒數(shù)。可接受的值是從 0 到 9999。如果指定了 0,就不會(huì)有暫停,默認(rèn)選項(xiàng) 會(huì)得到選擇。 /D choice在 nnnn 秒之后指定默認(rèn)選項(xiàng)。字符必須在用 /C 選項(xiàng)指定的一組選擇中; 同時(shí),必須用 /T 指定 nnnn。 /M text指定提示之前要顯示的消息。如果沒有指定,工具只顯示提示。 /?顯示幫助消息。 注意: ERRORLEVEL 環(huán)境變量被設(shè)置為從選擇集選擇的鍵索引。列出的第一個(gè)選擇返回 1,第二個(gè)選擇返回 2,等等。如果用戶按的鍵不是有效的選擇,該工具會(huì)發(fā)出警告響聲。如果該

15、工具檢測到錯(cuò)誤狀態(tài),它會(huì)返回 255 的ERRORLEVEL 值。如果用戶按 Ctrl+Break 或 Ctrl+C 鍵,該工具會(huì)返回 0 的 ERRORLEVEL 值。在一個(gè)批程序中使用 ERRORLEVEL 參數(shù)時(shí),將參數(shù)降序排列。 示例: CHOICE /? CHOICE /C YNC /M 確認(rèn)請按 Y,否請按 N,或者取消請按 C。 CHOICE /T 10 /C ync /CS /D y CHOICE /C ab /M 選項(xiàng) 1 請選擇 a,選項(xiàng) 2 請選擇 b。 CHOICE /C ab /N /M 選項(xiàng) 1 請選擇 a,選項(xiàng) 2 請選擇 b。 如果我運(yùn)行命令:CHOICE /C

16、 YNC /M 確認(rèn)請按 Y,否請按 N,或者取消請按 C。 屏幕上會(huì)顯示: 確認(rèn)請按 Y,否請按 N,或者取消請按 C。 Y,N,C? 例:test.bat的內(nèi)容如下(注意,用if errorlevel判斷返回值時(shí),要按返回值從高到低排列): echo off choice /C dme /M defrag,mem,end if errorlevel 3 goto end if errorlevel 2 goto mem if errotlevel 1 goto defrag :defrag c:/dos/defrag goto end :mem mem goto end :end echo

17、 good bye 注:如果在bat文件中出現(xiàn)外部程序,需要知道絕對路徑,并需要用引號(hào)。如:“C:Program Files (x86)Microsoft OfficeOffice14winword.exe”此批處理運(yùn)行后,將顯示defrag,mem,endD,M,E? ,用戶可選擇d m e ,然后if語句根據(jù)用戶的選擇作出判斷,d表示執(zhí)行標(biāo)號(hào)為defrag的程序段,m表示執(zhí)行標(biāo)號(hào)為mem的程序段,e表示執(zhí)行標(biāo)號(hào)為end的程序段,每個(gè)程序段最后都以goto end將程序跳到end標(biāo)號(hào)處,然后程序?qū)@示good bye,批處理運(yùn)行結(jié)束。 (四) for命令:(參考/focusHr/archive/2009/02/05/1384751.html)對一個(gè)或一組文件,字符串或命令結(jié)果中的每一個(gè)對象執(zhí)行特定命令,達(dá)到我們想要的結(jié)果。注意:在批處理文件中使用FOR命令時(shí),指定變量請使用%variable,而不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論