版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Windows批處理(Batch),也稱為批處理。顧名思義,批處理就是對(duì)某對(duì)象進(jìn)行批量的處理。批處理文件的擴(kuò)展名為bat。目前比較常見的批處理包含兩類:DOS批處理和PS批處理。PS批處理是基于強(qiáng)大的圖片編輯軟件Photoshop的用來批量處理的而DOS批處理則是基于DOS命令的,用來自動(dòng)地批量地執(zhí)行DOS命令以實(shí)現(xiàn)特定操作的。這里要講的就是DOS批處理。批處理是一種簡(jiǎn)化的語言,它應(yīng)用于DOS和Windows系統(tǒng)中,它是由DOS或者Windows系統(tǒng)內(nèi)嵌令解釋器(通常是 于Unix中的S 稱為批處理程序,是由一條條的DOS命令組成的普通文本文件,可以用記事本直接編輯或用DOS命令創(chuàng)建,也可以用DOS下的文本編輯器Edit.exe來編輯。在“命令提示”下鍵入開始向下逐句執(zhí)行所有令,直至程序結(jié)尾或遇見exit命令或出錯(cuò)意外退出。echo打開回顯或關(guān)閉請(qǐng)求回顯功能,或顯示消息。如果沒有任何參數(shù),echo命令將顯示當(dāng)echo[{on|off}]Sample:@echooff/ o在實(shí)際應(yīng)用中我們會(huì)把這條命令和重定向符號(hào)(也稱為管道符號(hào),一般用^)結(jié)合rem RemSample:@RemHereisthepause暫停命令。PausePressanykeyto @echocopyG:*.*echo請(qǐng)插入另一張光盤...goto在這個(gè)例子中,驅(qū)動(dòng)器G中磁盤上的所有文件均到d:\back中。顯示的注釋提示G時(shí),pause命令會(huì)使程序掛起,以便您更換光盤,然后按任call從一個(gè)批處理程序調(diào)用另一個(gè)批處理程序,并且不終止父批處理程序。call命令接受用。如果在或批處理文件外使用Call,它將不會(huì)在命令行起作用。call[[Drive:][Path]FileName][:labelstartstart如:startcalc.exe即可打開Windows的計(jì)算器?!皌itle”MINSEPARATE16WindowsHIGHHIGHREALTIMEREALTIMEWAITparameters這些為傳送到命令/32-GUI應(yīng)用程序時(shí),CMD.EXE不等應(yīng)用程序終止就返回命令提Startgoto 語法:gotolabel(label是參數(shù),指定所要轉(zhuǎn)向的批處理程序中的行if{%1}=={}goto@RemcheckparametersifnullshowechoUsage:monitor.batServerIPPortNumbergotoend是,gotoset 顯示變量:setsets前者顯示批處理當(dāng)前已定義的所有變量及其值,后者顯示所有s開頭的變量及值。設(shè)置變量:setaa=abcdaaabcdaa已被定義,則abcd。刪除變量:setaa=aaaaaa;aa尚未定義,則此句命令為實(shí)質(zhì)意義。C語言中的變量那樣還要區(qū)345。 【回 @】不能讓對(duì)方看到你使用令啦。1與>>如:echoaaaaa>a.txtaaaaaa.txt中,屏幕a.txta.txt中的所有信息,然aaaaaa.txt不存在時(shí),二者沒有差別。2<@echoechoabcdefga.txt中的信息>a.txtecho請(qǐng)任意輸入字符,以回車結(jié)束:set/pifo=echoechoset/pechoa.txtecho%ifo%|@echoechoaaaa>a.txtdel/pa.txt@echoechoechoy|del/pa.txt際刪除文件時(shí)不加/p開關(guān)即可實(shí)現(xiàn)無提示直接刪除。^><>>>@echoechoechoechoechoechoecho比較上面的兩句echoechoaaaaa.txtecho則aaaa>a.txt @echooffechoregaddHKCU/vtry/f||echo**成功**regaddHKCU1vtryf||echo**失敗**echo^&^®deleteHKCUvtryf&&echo**成功**regdeleteHKCUvtryf&&echo**失敗**echo^®deleteHKCUvtryf&echo**成功**regdeleteHKCUvtryf&echo**失敗**regadd或regdeleteecho命令也給出了“執(zhí)DOS cd顯示當(dāng) md創(chuàng) rd刪除一 pathtree dir顯 pathtreetype copy將一份或多份文 del move移動(dòng)文件并重命名文件 。(WindowsXPHomeEdition中沒有 ren replace attrib find fc ftp netnet ipconfig顯示、修改TCP/IP msg arpIP地址-at tskill taskkill結(jié)束進(jìn)程(tskillWinXPHome版中無該命令 tasklist顯示進(jìn)程列表(WindowsXPHomeEdition中沒有 powercfg控制系統(tǒng)上的電源設(shè)置cls清屏C(if語句)、循環(huán)結(jié)構(gòu)(for語句)等。if語句(選擇結(jié)構(gòu))if語句實(shí)現(xiàn)條件判斷,包括字符串比較、存在判斷、定義判斷等。通過條件判斷,if語IF[not]string1compare-opstring2command1[else==-等于EQU-等于NEQ-不等于LSS-小于LEQ-GTR-GEQ-選擇開關(guān)/inot項(xiàng),則對(duì)判斷結(jié)果進(jìn)行邏輯非。@echosetstr1=abcd1233setstr2=ABCD1234if%str1%==%str2echo字符串相同!elseecho字符串不相同!)if/i%str1%LSS%str2%(echostr1^<str2)else(echostr1^>=str2)setpchoice=ifinotchoice%EQUnecho當(dāng)前時(shí)間是:%datetime%ifnN時(shí)的效果是一樣的,都不會(huì)顯示時(shí)間。如果我們?nèi)∠_關(guān)/iN時(shí),依舊會(huì)顯示時(shí)間。IF[NOT]EXISTfilenamecommand1[else@echoifexist0echo文件%0ifnotexist%~df0echo文件夾%~df0elseecho文件夾%~df0%~df0是對(duì)%0的修正,只保留了其驅(qū)動(dòng)器盤符和路徑,參考for/?,屬高級(jí)批注意if語句的多多行書寫要求command1的左括號(hào)必須和if在同一else必須和command1的右括號(hào)、command2的左括號(hào)必須與else、command1和command2都可以有任意多行,即command可以是命令集。IF[not]DEFINEDvariablecommand1[else@echooffsetvar=111ifdefinedvarechovar=%var%elseechovarsetifdefinedvarechovar=%var%elseechovarfor語句(循環(huán)結(jié)構(gòu))forCfor語句的功能要更強(qiáng)大一點(diǎn),forfor循環(huán)語句。其命令格FOR%%variableIN(set)DO個(gè)百分號(hào)(%);setC語言里面的循環(huán)變量;do后面的command就是循環(huán)所執(zhí)行令,即循環(huán)體。無開關(guān)for@echofor%%iin(a,"bc",d)doecho%%i含開關(guān)/Lforset里面的設(shè)置進(jìn)行循環(huán),從而實(shí)現(xiàn)對(duì)循環(huán)次數(shù)的直接FOR/L%%variableIN(start,step,end)DO其中,start為開始計(jì)數(shù)的初始值,step為每次遞增的值,endendstart時(shí),step含開關(guān)/L的for語句舉例(5個(gè)文件夾@echofor/l%%iin(1,2,10)domd%%i51、3、5、7、9??梢园l(fā)現(xiàn),%%i的結(jié)束值end10end的一個(gè)數(shù)。回值進(jìn)行操作,還可以硬盤上的ASCII碼文件,比如txt文檔等。其命令格式為:FOR/F["options"]%%variableIN(set)DOtokens=x,y,m-n、usebackq)for/f。一般情況下,skip、tokens、delims三個(gè)選項(xiàng)。含開關(guān)/Ffor@echoecho**Nofor/f%%ain("1,2,10")doechoa=%%aecho**Optionstokens^&delims:for/f"tokens=1-3delims=,"%%ain("1,2,10")doechoa=%%ab=%%bc=%%c@echoechofor/f"skip=5tokens=3*delims="%%ain('dir')doifnota"=="<DIR>"ifnotb"=="字節(jié)ifnotb"=="可用字節(jié)echo)@echoechofor/f"skip=5tokens=3*delims="%%ain(c:\file.txt)doifnota"=="<DIR>"ifnotb"=="字節(jié)ifnotb"=="可用字節(jié)echo)delc:\file.txtoptionsdelims=是可以刪除的,因?yàn)橹灰砑恿?Fdelims的值默認(rèn)為空格。同時(shí)我們也看到了,for語句的do后面的commandcommanddo4、開關(guān)/D或含開關(guān)/D或/R的for語句是 /R令有時(shí)候被用于通過遍歷文件夾來查找某一個(gè)文件或文件夾,故而列舉此例。含開關(guān)/R的for語句舉例(文件夾遍歷):@echoFOR/Rd:%%iIN(.)DO(setset"dd=!dd:~0,-1!"echo!dd!)D盤下的所有文件夾,其速度要比命令"treed:"慢多了,不過其返回tree命令。一般情況下我們不推薦通過遍歷文件夾來查找文件,特別是在查找某些程序(比如QQ.exe)的位置時(shí)。推薦通過reg命令查找表來查找QQ的路徑,以保證查找效率。上例中也出現(xiàn)了幾個(gè)新面孔,如setlocal、感嘆號(hào)等。其中,感嘆號(hào)其實(shí)就是變量百分所獲取的僅僅是dd第一次被賦予的值;要想刷新dd的值,就必須首先通過命令"setlocalenabledelayedexpansion"來開啟延遲變量開關(guān),然后用!dd!dd的值。for語句是批處理里面功能最強(qiáng)大、使用最普遍卻又最難掌握的一套命令,這也是批處C語言里面的字符串函1@echosetecho原字符串(第二行為各字符的序號(hào)echo%ifo%echo5echoecho5echo6echo45echoecho145echo%ifo:~-14,5%@echo%time%2@echosetaa=偉大的中國(guó)!我為你自豪!echo替換前:%aa%echo替換后:%aa:中國(guó)=中民%echoaa=%aa%set"aa=%aa:中國(guó)=中民%"echoaa=%aa%內(nèi)容的話,就需要將修改結(jié)果“%aa:中國(guó)=中民%”賦值給變量aa。上面的字符3@echosetaa=偉大的中國(guó)!setbb=我為你自豪!echo%aa%%bb%echoaa=%aa%echoset"aa=%aa%%bb%"echoaa=%aa%4~I-刪除任何引號(hào)(")%~fI-%I%~dI-%I%~pI-%I%~nI-%I%~xI-%I%~sI-%~aI-%I%~tI-%I擴(kuò)充到文件的日期/%~zI-%I%~$PATH:I-查找列在路徑環(huán)境變量的 ,并將%I擴(kuò)充%~dpI-%I%~nxI-%I%~fsI-%I%~dp$PATH:i-查找列在路徑環(huán)境變量的 ,并將%I擴(kuò)充%~ftzaI-%I以上內(nèi)容于for/?幫助信息。其中的I代表變量I,不過需要說明的是,不是所有變量都能夠進(jìn)行擴(kuò)充的,有兩個(gè)條件:1、該字符串代表一個(gè)文件路徑;2、變量要用%x來表示,x可取a-zA-Z0-962個(gè)字符中的任意一個(gè)。舉例說明:@echoechoecho完全路徑:%0echoecho所在分區(qū):%~d0echo所處路徑:%~p0echo文件名:%~n0echoecho文件屬性:%~a0echo修改時(shí)間:%~t0echo文件大小:%~z0其中的%0%1-%9,1-9個(gè)參數(shù)。例子如下:@echosetaa=C:\Windows\PPP\a.btxcall:dealaaa%aa%"cc"dddeeeecho%%0=echo%%1=echo%%2=echo%%3=echo%%4=echo%%5=aacall命令并將aa作為參數(shù)傳遞給子函數(shù):deal,aa變量轉(zhuǎn)換成了變量%1,即符合%x格式,從而可以進(jìn)行字符串?dāng)U充。至于%x中x取a-zA-Z的形式,可以復(fù)下for語句,for語句里面的變量就是用%x來數(shù)值計(jì)算的范圍也受限于系統(tǒng)位數(shù),對(duì)于目前較為常見的32位機(jī)來說,數(shù)值計(jì)算能處理的數(shù)值范圍為0x expressionC語言里面的表達(dá)式基本上完全一致。setC語言里面的一樣,只是沒有了増一減一。set支持的運(yùn)算符及優(yōu)先級(jí)排序如下:()-~--一元運(yùn)算符(邏輯非、按位非、取負(fù)*/%-算數(shù)運(yùn)算符(乘、除得商、除得余數(shù),即取余+--算數(shù)運(yùn)算符(加、減<<>>-邏輯移位(左移一位、右移一位&-^-|-*=/=%=+=-=-&=^=|=<<=,-表達(dá)式分隔符(set可一次處理多個(gè)表達(dá)式(數(shù)字前綴0x,且支持不同進(jìn)制之間的計(jì)算,如set/aa=123 (一)1ComputerName計(jì)算機(jī)名,即右鍵我的電腦--屬性--計(jì)算機(jī)名選項(xiàng)卡中的“完整的計(jì)ComSpeccmd.exeHomeDriveC盤,故而ProgramFilesProgramFilesC:\ProgramFiles,這就是安Prompt個(gè)性化設(shè)置cmd提示符的必備!不過,我沒怎么用過~SystemDrive包含系統(tǒng)根的分區(qū),其實(shí)就是HomeDrive了SystemRoot系統(tǒng) Temp、Tmp文件、程序等可使用的臨時(shí)C:\WINDOWS\TempTmp。幾乎所有的程序在運(yùn)行時(shí)都會(huì)在這個(gè)里面“臨時(shí)”寫入文件。一般情況下,程序?qū)懭氲呐R時(shí)UserNameUserProfile當(dāng)前用戶的配置,一般都是C:\sandSettings\%UserName%。默認(rèn)情況下,我們的桌面就是這個(gè)下面的“桌面”文件夾;我的文檔就是這個(gè)下面 東西當(dāng)然就會(huì)GonewiththeWind了~解決方法有兩個(gè),一是保持良好的習(xí)慣,不把重要文WinDir操作系統(tǒng)路徑,其實(shí)就是SystemRoot2setset命令成為批處理里面使用頻率最高的幾個(gè)命令之一。關(guān)于set命令的使用,參考set/?,本也【3、變量前面的幾節(jié)課里面我們已經(jīng)看到了如何變量即直接用變量名操作變量通過"%"或"!"for語句里面重復(fù)對(duì)同一變量多次賦值時(shí)才需要使用SetLocalDisableDelayedExpansion(二)1@echosetvar=aCdehiM,?mnrstWyecho%var%call:dealsetlocaldisabledelayedexpansionsetvar=%var:?=!%echo%var%settm=!var!setvar=set)gotovarvar被修改后的值了。該例子中,使用了本節(jié)課前面講到的setlocalenabledelayedexpansion和setlocal者保證了能夠正確輸出符號(hào)"!"setset對(duì)字符串進(jìn)行了處goto:eof刪除是不會(huì)產(chǎn)生任何影響的。2Parameter1Parameter2...ParameterNCC語函數(shù)或子批處理里面是以%1~%9的形式表示的,即%1~%91~9個(gè)參@echocall:dealaaabbb"cc"dddeeeecho%%0=echo%%1=echo%%2=echo%%3=echo%%4=echo%%5=通過這個(gè)例子就可以清晰的看到%n參數(shù)表示法的用法。參數(shù)列表中包含空格的依舊要引號(hào)(")引起來;另外,也可以看到,%0已經(jīng)變成了子函數(shù)的標(biāo)號(hào)了,而不是父批處理3丟失了原變量的值;間接傳遞則通過%n對(duì)原變量進(jìn)行了簡(jiǎn)單的備份,并且通用性更強(qiáng),即不限定原變量的名稱。另外,使用%n還有一個(gè)非常大的好處,就是可以通過%~*i來加強(qiáng)處理變量的能力。關(guān)于%~*ifor/?。(三)有些命令在執(zhí)行之后將會(huì)返回一定的錯(cuò)誤值(errorlevel)errorlevel的值判斷Cexit(num),num就是錯(cuò)誤代碼。獲取返回值errorlevel的方法就是,在執(zhí)行命令后,立馬調(diào)用返回值errorlevel,如echo%errorlevel%if%errorlevel%==1等命令。@echoregaddHKCU/vtry/f>nulregdeleteHKCU/vtry/fiferrorlevel0echo1刪除成功!1elseecho刪除失?。?regdeleteHKCU/vtry/fiferrorlevel%==0echo1刪除成功!1elseecho刪除失??!)上面例子中由于第一成功的刪除了表導(dǎo)致第二次因?yàn)檎也坏奖矶?。errorleveliferrorlevel0if%errorlevel%==0是一樣的。也許你注意到了,里面還有個(gè)笑臉呢~O(∩_∩)O哈哈~ASCII碼啦,后面跟你講啊…errorlevel01或更高的errorlevel的值來進(jìn)行邏輯判斷的~(四)DOS為人們使用計(jì)算機(jī)做出了莫大的Windows盛行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 裝潢美術(shù)設(shè)計(jì)師操作知識(shí)競(jìng)賽考核試卷含答案
- 硫漂工安全宣教知識(shí)考核試卷含答案
- 2025年獨(dú)立運(yùn)行村用風(fēng)力發(fā)電機(jī)組項(xiàng)目發(fā)展計(jì)劃
- 2025年石油鉆采機(jī)械項(xiàng)目發(fā)展計(jì)劃
- 2025年金屬冶煉加工項(xiàng)目發(fā)展計(jì)劃
- 2025年光伏發(fā)電用控制器項(xiàng)目發(fā)展計(jì)劃
- 2025年電子裝聯(lián)專用設(shè)備合作協(xié)議書
- 2026年液相色譜-質(zhì)譜聯(lián)用儀(LC-MS)項(xiàng)目建議書
- 2025年江蘇省南通市中考化學(xué)真題卷含答案解析
- 喬木栽植施工工藝
- 感染性心內(nèi)膜炎護(hù)理查房
- 導(dǎo)管相關(guān)皮膚損傷患者的護(hù)理 2
- 審計(jì)數(shù)據(jù)管理辦法
- 2025國(guó)開《中國(guó)古代文學(xué)(下)》形考任務(wù)1234答案
- 研發(fā)公司安全管理制度
- 兒童口腔診療行為管理學(xué)
- 瓷磚樣品發(fā)放管理制度
- 北京市2025學(xué)年高二(上)第一次普通高中學(xué)業(yè)水平合格性考試物理試題(原卷版)
- 短文魯迅閱讀題目及答案
- 肺部感染中醫(yī)護(hù)理
- 臨床研究質(zhì)量控制措施與方案
評(píng)論
0/150
提交評(píng)論