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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

10、次序順序判斷。如下的例子,先判斷返回值為1的,再判斷返回值為0的。 IF ERRORLEVEL 1 ECHO 文件拷貝失敗  IF ERRORLEVEL 0 ECHO 成功拷貝文件 如if errorlevel 2 goto x24. if number 比較符 value commandEQU 等于NEQ 不等于LSS 小于LEQ 小于或等于GTR 大于GEQ 大于或等于5. if defined test command /如果定了了變量test,則執(zhí)行command。如:if d

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

12、 end :end echo this is the end 標(biāo)號用":字符串"來定義,標(biāo)號所在行不被執(zhí)行。在有多個標(biāo)號時,每個標(biāo)號都要有g(shù)oto語句跳出,否則各個標(biāo)號程序會連續(xù)執(zhí)行。 注意: (1) 標(biāo)號前是ASCII字符的冒號":",冒號與標(biāo)號之間不能有空格。 (2) 標(biāo)號的命名規(guī)則與文件名的命名規(guī)則相同。 (3) DOS支持最長八位字符的標(biāo)號,當(dāng)無法區(qū)別兩個標(biāo)號時,將跳轉(zhuǎn)至最近的一個標(biāo)號。(三) choice命令使用此命令可以讓用戶輸入一個字符用于選擇,從而根據(jù)用戶的選擇返回不同的errorlevel,然后于if errorlevel配合,根據(jù)用戶

13、的選擇運行不同的命令。注意:choice命令為DOS或者Windows系統(tǒng)提供的外部命令,不同版本的choice命令語法會稍有不同,請用choice /?查看用法。choice的命令語法該語法為Windows 2003中choice命令的語法,其它版本的choice的命令語法與此大同小異: CHOICE /C choices /N /CS /T timeout /D choice /M text 描述: 該工具允許用戶從選擇列表選擇一個項目并返回所選項目的索引。 參數(shù)列表: /C choices 指定要創(chuàng)建的選項列表。默認(rèn)列表是 "YN"。 /即定義可選擇項/N 在提示符中

14、隱藏選項列表。提示前面的消息得到顯示,選項依舊處于啟用狀態(tài)。 /即Y,N,C?列表將隱藏,但提示用戶選擇的信息將正常顯示。另外,/N必須用于/M參數(shù)之前。/CS 允許選擇分大小寫的選項。在默認(rèn)情況下,這個工具是不分大小寫的。 /T timeout 做出默認(rèn)選擇之前,暫停的秒數(shù)??山邮艿闹凳菑?0 到 9999。如果指定了 0,就不會有暫停,默認(rèn)選項 會得到選擇。 /D choice在 nnnn 秒之后指定默認(rèn)選項。字符必須在用 /C 選項指定的一組選擇中; 同時,必須用 /T 指定 nnnn。 /M text指定提示之前要顯示的消息。如果沒有指定,工具只顯示提示。 /?顯示幫助消息。 注意:

15、ERRORLEVEL 環(huán)境變量被設(shè)置為從選擇集選擇的鍵索引。列出的第一個選擇返回 1,第二個選擇返回 2,等等。如果用戶按的鍵不是有效的選擇,該工具會發(fā)出警告響聲。如果該工具檢測到錯誤狀態(tài),它會返回 255 的ERRORLEVEL 值。如果用戶按 Ctrl+Break 或 Ctrl+C 鍵,該工具會返回 0 的 ERRORLEVEL 值。在一個批程序中使用 ERRORLEVEL 參數(shù)時,將參數(shù)降序排列。 例如: CHOICE /? CHOICE /C YNC /M "確認(rèn)請按 Y,否請按 N,或者取消請按 C。" CHOICE /T 10 /C ync /CS /D y C

16、HOICE /C ab /M "選項 1 請選擇 a,選項 2 請選擇 b。" CHOICE /C ab /N /M "選項 1 請選擇 a,選項 2 請選擇 b。" 如果我運行命令:CHOICE /C YNC /M "確認(rèn)請按 Y,否請按 N,或者取消請按 C。" 屏幕上會顯示: 確認(rèn)請按 Y,否請按 N,或者取消請按 C。 Y,N,C? 注意,用if errorlevel判斷返回值時,要按返回值從高到低排列: echo off choice /C dme /M "defrag,mem,end" if error

17、level 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 good bye 注:如果在bat文件中出現(xiàn)外部程序,需要知道絕對路徑,并需要用引號。如:“C:Program Files (x86)Microsoft OfficeOffice14”此批處理運行后,將顯示"defrag,mem,endD,M,E?" ,用戶可選擇d m e ,然后if語句根據(jù)用戶的選擇作出判斷,d表示執(zhí)

18、行標(biāo)號為defrag的程序段,m表示執(zhí)行標(biāo)號為mem的程序段,e表示執(zhí)行標(biāo)號為end的程序段,每個程序段最后都以goto end將程序跳到end標(biāo)號處,然后程序?qū)@示good bye,批處理運行結(jié)束。 (四) for命令:(參考 :/www blogs )對一個或一組文件,字符串或命令結(jié)果中的每一個對象執(zhí)行特定命令,到達(dá)我們想要的結(jié)果。  注意:在批處理文件中使用 FOR 命令時,指定變量請使用 %variable,而不要用 %variable。變量名稱是區(qū)分大小寫的,所以 %i 不同于 %I。語法:FO

19、R 參數(shù) %變量名 IN (相關(guān)文件或命令)   DO 執(zhí)行的命令for命令可以帶參數(shù)或不帶參數(shù),帶參數(shù)時支持以下參數(shù):/d /l /r /f  語法: 1. 不帶參數(shù):FOR %variable IN (set) DO command command-parameters %variable指定一個單一字母可替換的參數(shù)。 (set)指定一個或一組文件??梢允褂猛ㄅ浞?/不帶參數(shù)時,只指文件。command指定對每個文件執(zhí)行的命令。 command-paramet

20、ers 為特定命令指定參數(shù)或命令行開關(guān)。 DO后面可以跟if等其他命令,需要用()括起來。例如: for %i in (t*.*) do echo %i -顯示當(dāng)前目錄下與t*.*相匹配的文件(只顯示文件名,不顯示路徑)   for %i in (d:mydocuments*.doc) do echo %i -顯示d:mydocuments目錄下與*.doc相匹配的文件  2. 帶有參數(shù)時:(1) 參數(shù)&#

21、160;/d (參數(shù)只能顯示當(dāng)前目錄下的目錄名字)格式:FOR /D %variable IN (set) DO command command-parameters這個參數(shù)主要用于目錄搜索,不會搜索文件,/D 參數(shù)只能顯示當(dāng)前目錄下的目錄名字。(特別說明:只會搜索指定目錄下的目錄,不會搜索再下一級的目錄。)  for /d %i in (c:*) do echo %i  -顯示c盤根目錄下的所有

22、目錄  for /d %i in (?) do echo %i  -顯示當(dāng)前目錄下名字只有1-3個字母的目錄 (2) 參數(shù) /R (搜索指定路徑及所有子目錄中與set相符合的所有文件)格式:FOR /R drive:path %variable IN (set) DO command command-parameters  此命令會搜索指定路徑及所有子目錄中

23、與set相符合的所有文件,注意是指定路徑及所有子目錄。set中的文件名如果含有通配符(?或*),則列舉/R參數(shù)指定的目錄及其下面的所有子目錄中與set相符合的所有文件,無相符文件的目錄則不列舉。 如果set中為具體文件名,不含通配符,則枚舉該目錄樹即列舉該目錄及其下面的所有子目錄(并在后面加上具體的文件名),而不管set中的指定文件是否存在。 例如:for /r c: %i in (boot.ini) do echo %i -枚舉了c盤所有目錄,沒有通配符,命令結(jié)果會將文件名boot.ini自動見到c:下所有的目錄下,并顯示出來。for /r c: %i in (boot*.ini)

24、 do echo %i -包括了通配符,只列舉出保護(hù)符合通配符的文件所在的目錄。for /r d:backup %i in (1) do echo %i -枚舉dbackup目錄 (3) 參數(shù) /L (該集表示以增量形式從開始到結(jié)束的一個數(shù)字序列??梢允褂秘?fù)的 Step)格式:FOR /L %variable IN (start,step,end) DO command command-parametersfor /l %i in (1,1,5) do echo %i -輸出1 2 3 4 5

25、/從1開始,遞增1,最大值為5for /l %i in (1,2,10) do echo %i -輸出1,3,5,7,9 for /l %i in (100,-20,1) do echo %i -輸出100,80,60,40,20 for /l %i in (1,1,5) do start cmd -打開5個CMD窗口 for /l %i in (1,1,5) do md %i -建立從15共5個文件夾 for /l %i in (1,1,5) do rd /q %i -刪除從15共5個文件夾(4) 參數(shù)/F(主要用來處理文件內(nèi)容或命令的輸出結(jié)果,/F默認(rèn)將每行作為一個元素來處理。)格式: F

26、OR /F "options" %i IN (file) DO command / file代表一個或多個文件。for會依次將file中的文件打開,并且在進(jìn)行到下一個文件之前將每個文件讀取到內(nèi)存,將每行作為一個的元素,%i代表這個元素。忽略空白的行。FOR /F "options" %i IN ("string") DO command / string 代表字符串FOR /F "options" %i IN ('command') DO command / command代表命令。命令行需要用單引

27、號。"options" 可選假設(shè)文件a.txt中有如下內(nèi)容: 第1行第1列 第1行第2列 第1行第3列 第2行第1列 第2行第2列 第2行第3列 第3行第1列 第3行第2列 第3行第3列 for也可以完成同樣的命令: for /f "tokens=*" %i in (a.txt) do echo %i 還是先從括號執(zhí)行,因為含有參數(shù)/f,所以for會先打開a.txt,然后讀出a.txt里面的所有內(nèi)容,把它作為一個集合,并且以每一行作為一個元素,所以會產(chǎn)生這樣的集合: "第1行第1列 第1行第2列 第1行第3列", /第一個元素 &qu

28、ot;第2行第1列 第2行第2列 第2行第3列", /第二個元素 "第3行第1列 第3行第2列 第3行第3列"   /第三個元素 集合中只有3個元素,同樣用%i依次代替每個元素,然后執(zhí)行do后面的命令。 tokens參數(shù)后面在描述。具體過程: 用%i代替"第1行第1列 第1行第2列 第1行第3列",執(zhí)行do后面的echo %i,顯示"第1行第1列 第1行第2列 第1行第3列", 用%i代替"第2行第1列 第2行第2列 第2行第3列",執(zhí)行echo %i,顯示"第2行第1列 第

29、2行第2列 第2行第3列", 依次,直到每個元素都代替完為止。為了加強(qiáng)理解/f的作用,請執(zhí)行一下兩個命令,比照即可明白: for /f %i in (a.txt) do echo %i /這個會顯示a.txt里面的內(nèi)容,因為/f的作用,會讀出a.txt中 的內(nèi)容。 for %i in (a.txt) do echo %i /而這個只會顯示a.txt這個名字,并不會讀取其中的內(nèi)容。通過上面的學(xué)習(xí),我們發(fā)現(xiàn)for /f會默認(rèn)以每一行來作為一個元素,但是如果我們還想把每一行再分解更小的內(nèi)容,該怎么辦呢?不用擔(dān)憂,for命令還為我們提供了更詳細(xì)的參數(shù),使我們將每一行分為更小的元素成為可能。

30、它們就是:delims和tokens參數(shù)(4.1) delims: 用來告訴for每一行應(yīng)該拿什么作為分隔符,默認(rèn)的分隔符是空格和tab鍵。比方,還是上面的文件,我們執(zhí)行下面的命令: for /f "delims= " %i in (a.txt) do echo %i 顯示的結(jié)果是: 第1行第1列 第2行第1列 第3行第1列 為什么是這樣的呢。因為這里有了delims這個參數(shù),=后面有一個空格,意思是再將每個元素以空格分割,默認(rèn)是只取分割之后的第一個元素。 執(zhí)行過程是: 將第一個元素"第1行第1列 第1行第2列 第1行第3列"分成三個元素:"第

31、1行第1列" "第1行第2列" "第1行第3列",它默認(rèn)只取第一個,即"第1行第1列",然后執(zhí)行do后面的命令,依次類推。(4.2) tokens參數(shù):它的作用就是當(dāng)你通過delims將每一行分為更小的元素時,由它來控制要取哪一個或哪幾個。還是上面的例子,執(zhí)行如下命令: for /f "tokens=2 delims= " %i in (a.txt) do echo %i 執(zhí)行結(jié)果: 第1行第2列 第2行第2列 第3行第2列如果要顯示第三列,那就換成tokens=3。如果要顯示第二列和第三列,則換成tok

32、ens=2,3或tokens=2-3,如果還有更多的則為:tokens=2-10之類的。 但參數(shù)的個數(shù)要相應(yīng)的增加。此時的命令為: for /f "tokens=2,3 delims= " %i in (a.txt) do echo %i %j delims指定在每行中,用空格作為分隔符,取每行的第2和第3和元素。用%i代替第2個元素,%j代替第3個元素。參數(shù)必須是按照英文字母順序排列的,%j不能換成%k,因為i后面是j執(zhí)行結(jié)果為: 第1行第2列 第1行第3列 第2行第2列 第2行第3列 第3行第2列 第3行第3列(4.3) 對于通配符*,就是把這一行全部或者這一行的剩余部

33、分當(dāng)作一個元素了。 比方: for /f "tokens=* delims= " %i in (a.txt) do echo %i 執(zhí)行結(jié)果為: 第1行第1列 第1行第2列 第1行第3列 第2行第1列 第2行第2列 第2行第3列 第3行第1列 第3行第2列 第3行第3列再如: for /f "tokens=2,* delims= " %i in (a.txt) do echo %i %j /用%i代替第二列,用%j代替剩余的所有執(zhí)行結(jié)果為: 第1行第2列 第1行第3列 第2行第2列 第2行第3列 第3行第2列 第3行第3列 (4.4) skip參數(shù):sk

34、ip就是要忽略文件的前多少行比方: for /f "skip=2 tokens=*" %i in (a.txt) do echo %i 結(jié)果為: 第3行第1列 第3行第2列 第3行第3列 用skip來告訴for跳過前兩行。 如果不加tokens=*的話,執(zhí)行結(jié)果為: 第3行第1列(4.5) eol用來指定當(dāng)一行以什么符號開始時,就忽略它。再如,當(dāng)a.txt內(nèi)容變成: .第1行第1列 第1行第2列 第1行第3列 .第2行第1列 第2行第2列 第2行第3列 第3行第1列 第3行第2列 第3行第3列 for /f "eol=. tokens=*" %i in

35、(a.txt) do echo %i結(jié)果是: 第3行第1列 第3行第2列 第3行第3列 用eol來告訴for忽略以"."開頭的行。 同樣也必須加tokens=*,否則只會顯示"第3行第1列"(五) set命令:設(shè)置變量1. set顯示環(huán)境變量set 會顯示當(dāng)前所有的系統(tǒng)環(huán)境變量set c 會顯示所有以c或C開頭的變量。(即:不區(qū)分大小寫)set com 顯示所有以com或Com開頭的變量。 2. set設(shè)置環(huán)境變量如:set str=ok /就是將變量str的值設(shè)置成字符串“OK”注:如果在變量值中有特殊字符,則set后面的表達(dá)式需要用雙引號括起來。如:

36、set “str=ok>”3. 帶參數(shù) /a的set 數(shù)值計算set的/A參數(shù)就是讓SET可以支持?jǐn)?shù)學(xué)符號進(jìn)行加減等一些數(shù)學(xué)運算! 支持的數(shù)學(xué)運算包含優(yōu)先權(quán)遞減:() /分組! /一元運算符* / % /算數(shù)運算符+ /算數(shù)運算符<< >> /邏輯移位& /按位“與” /按位“異”| /按位“或”= *= /= %= += -= /賦值&= = |= <<= >>=, /表達(dá)式分隔符如:set /a var=10-2 /結(jié)果:var=8,如果沒有/a,則var的值是字符串10-2set /a var=2*2set /a va

37、r=2/2set /a var=(1+1)+(1+1)set /a a=1+1,b=2+1,c=3+1 /使用“,”將表達(dá)式分隔。echo %a% %b% %c%注意:邏輯運算符和取余操作符需要用雙引號括起來,如:set /a var=1 “&” 1set /a var=1 “%” 1set /a var=2 “<<” 2 4. 帶參數(shù)/p的set命令:允許變量值是用戶的輸入行如:set /p str=Please input you string.echo Your input is: %str%.注意:set /p的特殊用法set /p=A /直接顯示等號后面的內(nèi)容,相

38、當(dāng)于echo A.但是顯示內(nèi)容后需要手動按回車鍵后才能繼續(xù)執(zhí)行下一條語句。set /p=A<null /顯示內(nèi)容并不帶回車。即:顯示完后立即執(zhí)行下一條語句。由于沒有回車,下一條語句的輸出會跟在這條語句的后面。echo offfor /l %i in (1 1 300) do (set /p=O<null /輸出字母Ofor /l %a in (1 1 280) do ver>null) /利用for循環(huán)運行ver>null來到達(dá)延時的目的。其中ver是顯示當(dāng)前命令行窗口版本的命令。也可以將var換位help,time /t等其他命令。pause>null5. 字符

39、串截取格式:set a=%var:start,len% /從變量var的值的start位開始截取,一共截取len位。假設(shè)start或len位負(fù)數(shù),表示從倒數(shù)第幾位開始截取或截取倒數(shù)幾位。位數(shù)的表示是從0開始的。echo offset var= baidu set a=%var:1,2%echo %a%pause>null從第1位(也即第二個字符)開始,截取2個字符。%var:5% /從第6開始,截取剩下所有字符。%var:-3% /截取倒數(shù)3位%var:0,-len% /截取從第一位開始,倒數(shù)第len位結(jié)束的字符。六、 批處理例如1. IF-EXIST1) 首先用記事本在C:/建立一個t

40、est1.bat批處理文件,文件內(nèi)容如下: echo off IF EXIST /AUTOEXEC.BAT TYPE /AUTOEXEC.BAT IF NOT EXIST /AUTOEXEC.BAT ECHO /AUTOEXEC.BAT does not exist 然后運行它: C:/>TEST1.BAT 如果C:/存在AUTOEXEC.BAT文件,那么它的內(nèi)容就會被顯示出來,如果不存在,批處理就會提示你該文件不存在。 2) 接著再建立一個文件,內(nèi)容如下:ECHO OFF IF EXIST /%1 TYPE /%1 IF NOT EXIST /%1 ECHO /%1 does not

41、exist 執(zhí)行: C:/>TEST2 AUTOEXEC.BAT 該命令運行結(jié)果同上。 說明: (1) IF EXIST 是用來測試文件是否存在的,格式為 IF EXIST 路徑+文件名 命令 文件中的%1是參數(shù),DOS允許傳遞9個批參數(shù)信息給批處理文件,分別為%1%9(%0表示test2命令本身) ,這有點象編程中的實參和形參的關(guān)系,%1是形參,是實參。3)更進(jìn)一步的,建立一個名為TEST3.BAT的文件,內(nèi)容如下: echo off IF "%1" = "A" ECHO XIAO IF "%2" = "B"

42、; ECHO TIAN IF "%3" = "C" ECHO XIN 如果運行: C:/>TEST3 A B C 屏幕上會顯示: XIAO TIAN XIN 如果運行: C:/>TEST3 A B 屏幕上會顯示 XIAO TIAN 在這個命令執(zhí)行過程中,DOS會將一個空字符串指定給參數(shù)%3。 2. IF-ERRORLEVEL例如:建立TEST4.BAT,內(nèi)容如下: ECHO OFF XCOPY C:/AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷貝失敗 IF ERRORLEVEL 0 ECHO 成功拷貝文件 然后執(zhí)行文件: C:/>TEST4 如果文件拷貝成功,屏幕就會顯示"成功拷貝文件",否則就會顯示"文件拷貝失敗"。 IF ERRORLEVEL 是用來測試它的上一個DOS命令的返回值的,注意只是上一個命令的返回值,而且返回值必須依照從大到小次序順序判斷。因此下面的批處理文件是錯誤的: ECHO OFF XCOPY C:/AUTOEXEC.BAT D:/ IF ERRORLEVEL 0 ECHO 成功拷貝文件 IF ERROR

溫馨提示

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

評論

0/150

提交評論