




已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
批處理基礎教程,Crawt制作,1,大家好,我是黑基的crawt,今天呢我來教大家如何編寫批處理!所謂批處理,從字面上理解就是一批處理,那一批是代表什么呢?呵呵,很多朋友已經知道了正是很多的是Dos命令。通俗的講批處理就是把很多Dos命令整合起來,一下子由系統(tǒng)處理完。后綴是bat的文件就是批處理文件,是一種文本文件。簡單的說,它的作用就是自動的連續(xù)執(zhí)行多條命令,批處理文件的內容就是一條一條的命令。那它有什么用呢?如果你連Dos都不會,那么你可以關了教程去學習Dos了。注意,批處理編寫不需要什么高級的工具,只要一個簡單的記事本就可以編寫,編寫后修改一下后綴就行了。先告訴各位新手朋友,如果你有什么命令不懂,直接在CMD下面輸入:name/?這樣的格式來看系統(tǒng)給出的幫助文件,比如/for就會把for命令的幫助全部顯示出來!至于for是什么,下面會繼續(xù)講解。,好,那么我們就來介紹一下批處理一些基本命令!,Letsgo!,教程筆記本,2,echo、call、pause、rem是批處理文件最常用的幾個命令,我們就從他們開始學起。echo表示顯示此命令后的字符echooff表示在此語句后所有運行的命令都不顯示命令行本身與echooff相象,但它是加在其它命令行的最前面,表示運行時不顯示命令行本身。call調用另一條批處理文件(如果直接調用別的批處理文件,執(zhí)行完那條文件后將無法執(zhí)行當前文件后續(xù)命令)pause運行此句會暫停,顯示Pressanykeytocontinue.等待用戶按任意鍵后繼續(xù)rem或者:表示此命令后的字符為解釋行,不執(zhí)行,只是給自己今后查找用的??赐暌陨系奈淖?,我來考考大家吧!記住看到這里先按暫停,自己動手操作一下哦!新建兩個批處理文件A.bat和B.bat(名字可以任意),然后由A調用一個在同一目錄的批處理B,并在加入注釋”調用B“。并且要隱藏A的所有命令,同時要讓B顯示”黑客基地“并暫停等待。答案就放在教程目錄里了,大家可以去校對一下!,3,批處理文件中還可以像C語言一樣使用參數,這只需用到一個參數表示符%。%表示參數,參數是指在運行批處理文件時在文件名后加的字符串。變量可以從%0到%9,%0表示文件名本身,字符串用%1到%9順序表示。例如,C:根目錄下一批處理文件名為f.bat,內容為:format%1則如果執(zhí)行C:fa:則實際執(zhí)行的是formata:(這個是格式化命令大家試驗的時候要注意?。┯秩鏑:根目錄下一批處理文件的名為t.bat,內容為:type%1type%2那么運行C:ta.txtb.txt將順序地顯示a.txt和b.txt文件的內容。大家理解了嗎,不理解可以多看幾遍,%也可以理解為一個方程中的X哦!,參數,4,if,goto,set,for是批處理文件中比較高級的命令,如果你能將這幾個命令用的很熟練的話,恭喜你你就是一個批處理的高手了!if表示將判斷是否符合規(guī)定的條件,從而決定執(zhí)行不同的命令。有三種格式:IFNOT將返回結果取反值,就是“如果沒有”的意思1、if“參數”=“字符串”待執(zhí)行的命令,兩個等于號意思是絕對相等,一般都帶兩個.參數如果等于指定的字符串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號)如if“%1”=“a”formata:2、ifexist文件名待執(zhí)行的命令如果有指定的文件,則條件成立,運行命令,否則運行下一句。如ifexistconfig.syseditconfig.sys3、iferrorlevel數字待執(zhí)行的命令如果返回碼等于指定的數字,則條件成立,運行命令,否則運行下一句。如iferrorlevel2gotox2DOS程序運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼goto批處理文件運行到這里將跳到goto所指定的標號處,一般與if配合使用。如:gotoend:endechothisistheend標號用:字符串表示,標號所在行不被執(zhí)行一把有goto就有:標號!,高級命令,5,for循環(huán)命令,只要條件符合,它將多次執(zhí)行同一命令。格式FOR參數%變量名IN(相關文件或命令)DO執(zhí)行的命令只要參數f在指定的集合內,則條件成立,執(zhí)行命令如果一條批處理文件中有一行:for%cin(*.bat*.txt)dotype%c含義是如果是以bat或txt結尾的文件,則顯示文件的內容。,FOR這條命令基本上都被用來處理文本,我們這次除了要說他處理文本的作用外還要講他的其他一些好用的功能!看看他的基本格式(這里我引用的是批處理中的格式,直接在命令行只需要一個%號)參數:FOR有4個參數/d/l/r/f他們的作用我在下面用例子解釋%變量名:這個變量名可以是小寫a-z或者大寫A-Z,他們區(qū)分大小寫哦FOR會把每個讀取到的值給他!IN:命令的格式,照寫就是了!(相關文件或命令):FOR要把什么東西讀取然后賦值給變量,不懂的話看下面的例子do:命令的格式,照寫就是了!執(zhí)行的命令:對每個變量的值要執(zhí)行什么操作就寫在這.看不懂我的這些說明,可以在CMD輸入for/?看系統(tǒng)提供的幫助!我這里也給出來吧,大家對照,6,FOR%variableIN(set)DOcommandcommand-parameters%variable指定一個單一字母可替換的參數。(set)指定一個或一組文件??梢允褂猛ㄅ浞?。command指定對每個文件執(zhí)行的命令。command-parameters為特定命令指定參數或命令行開關?,F在開始講每個參數的意思/d僅為目錄,這個參數其實我也沒弄太懂.有錯誤希望各位糾正!系統(tǒng)幫助的格式:FOR/D%variableIN(set)DOcommand他主要用于目錄搜索,不會搜索文件,看這樣的例子echoofffor/d%iin(*)doecho%ipause把他保存放在C盤根目錄執(zhí)行,就會把C盤目錄下的全部目錄名字打印出來,而文件名字一個也不顯示!在來一個,比如我們要把當前路徑下文件夾的名字只有1-3個字母的打出來echoofffor/d%iin(?)doecho%ipause這樣的話如果你當前目錄下有目錄名字只有1-3個字母的,就會顯示出來,沒有就不顯示了這里解釋下*號和?號的作用,*號表示任意N個字符,而?號只表示任意一個字符。,7,/R遞歸進入根目錄樹Drive:Path,在樹的每個目錄中執(zhí)行for語句。如果在/R后沒有指定目錄,則認為是當前目錄。如果Set只是一個句點(.),則只枚舉目錄樹。系統(tǒng)幫助的格式:FOR/Rdrive:path%variableIN(set)DOcommand上面我們知道,/D只能顯示當前路徑下的目錄名字,那么現在這個/R也是和目錄有關,他能干嘛呢?放心他比/D強大多了!他可以把當前或者你指定路徑下的文件名字全部讀取,注意是文件名字,有什么用看例子!echoofffor/rc:%iin(*.exe)doecho%ipause咋們把這個BAT保存到D盤隨便哪里然后執(zhí)行,我會就會看到,他把C盤根目錄,和每個目錄的子目錄下面全部的EXE文件都列出來了!再來一個echoofffor/r%iin(*.exe)doecho%ipause參數不一樣了吧!這個命令前面沒加那個C:也就是搜索路徑,這樣他就會以當前目錄為搜索路徑,比如你這個BAT你把他防災d:test目錄下執(zhí)行,那么他就會把D:test目錄和他下面的子目錄的全部EXE文件列出來!這個參數大家因該理解了吧!還是滿好玩的命令!,8,/L迭代數值范圍使用迭代變量設置起始值(Start#),然后逐步執(zhí)行一組范圍的值,直到該值超過所設置的終止值(End#)。/L將通過對Start#與End#進行比較來執(zhí)行迭代變量。如果Start#小于End#,就會執(zhí)行該命令。如果迭代變量超過End#,則命令解釋程序退出此循環(huán)。還可以使用負的Step#以遞減數值的方式逐步執(zhí)行此范圍內的值。例如,(1,1,5)生成序列12345,而(5,-1,1)則生成序列(54321)。語法是:系統(tǒng)幫助的格式:for/L%Variablein(Start#,Step#,End#)doCommand看著這說明有點暈吧!咋們看例子就不暈了!echoofffor/l%iin(1,1,5)doecho%ipause保存執(zhí)行看效果,他會打印從12345這樣5個數字(1,1,5)這個參數也就是表示從1開始每次加1直到5終止!大會暈,就打印個數字有P用.好的滿足大家,看這個例子echoofffor/l%iin(1,1,5)dostartcmdpause執(zhí)行后是不是嚇了一跳,怎么多了5個CMD窗口,呵呵!如果把那個(1,1,5)改成(1,1,65535)會有什么結果,我先告訴大家,會打開65535個CMD窗口.這么多你不死機算你強!當然我們也可以把那個startcmd改成md%i這樣就會建立指定個目錄了!名字為1-65535看完這個被我賦予破壞性質的參數后,我們來看最后一個參數,9,/f迭代及文件解析使用文件解析來處理命令輸出、字符串及文件內容。使用迭代變量定義要檢查的內容或字符串,并使用各種ParsingKeywords選項進一步修改解析方式。使用ParsingKeywords令牌選項指定哪些令牌應該作為迭代變量傳遞。請注意:在沒有使用令牌選項時,/F將只檢查第一個令牌。文件解析過程包括讀取輸出、字符串或文件內容,將其分成獨立的文本行以及再將每行解析成零個或更多個令牌。然后通過設置為令牌的迭代變量值,調用for循環(huán)。默認情況下,/F傳遞每個文件每一行的第一個空白分隔符號。跳過空行。系統(tǒng)幫助的格式:for/F“ParsingKeywords”%Variablein(FileNameSet)doCommand有沒有發(fā)現這個參數說明比上面幾個都多.沒辦法,人們用FOR命令主要也就是用/f參數,FOR的主場啊!大家得好好看!先來解釋下那個多出來的“ParsingKeywords”他表示4個參數eol=c-指一個行注釋字符的結尾(就一個)skip=n-指在文件開始時忽略的行數。delims=xxx-指分隔符集。這個替換了空格和跳格鍵的默認分隔符集。tokens=x,y,m-n-指每行的哪一個符號被傳遞到每個迭代的for本身。這會導致額外變量名稱的分配。m-n格式為一個范圍。通過nth符號指定mth。如果符號字符串中的最后一個字符星號,那么額外的變量將在最后一個符號解析之后分配并接受行的保留文本。usebackq-指定新語法已在下類情況中使用:在作為命令執(zhí)行一個后引號的字符串并且一個單引號字符為文字字符串命令并允許在filenameset中使用雙引號擴起文件名稱。,10,先別暈了!我這就舉個例子幫助大家來理解這些參數!usebackq這個參數不用理解了,系統(tǒng)默認會給我們加上!為了能使用這個例子,我們先新建一個文本文件,在里面打上這些內容保存為test.txt:;郁悶啊!黑客基地echooffFOR/F“eol=;tokens=1delims=”%iin(test.txt)doecho%ipause我們把這個BAT保存到和你的test.txt相同的目錄下面然后執(zhí)行我們會看到屏幕上會顯示黑客基地為什么會這樣?我來解釋這個命令會讀取在當前目錄下名為test.txt文件中的內容,將每一行的內容賦值給變量%i,忽略掉以;號開頭的行,并且以空格做為分隔符號,打印每行以空格做分隔符號的第一列結果就是這樣了!當然我們想要把全部文件內容直接打印出來就可以這樣echooffFOR/Fdelims=%iin(test.txt)doecho%ipause另外/F參數還可以以輸出命令的結果看這個例子echooffFOR/Fdelims=%iin(netuser)doecho%ipause這樣你本機全部帳號名字就出來了把擴號內的內容用兩個單引號引起來就表示那個當命令執(zhí)行,FOR會返回命令的每行結果,加那個delims=是為了讓我空格的行能整行顯示出來,不加就只顯示空格左邊一列!,11,Set變量大師設置自定義變量的用法例子:echooffsetvar=我是值echo%var%pause請看setvar=我是值,這就是BAT直接在批處理中設置變量的方法!set是命令var是變量名=號右邊的我是值是變量的值在批處理中我們要引用這個變就把var變量名用兩個%(百分號)擴起來,如%var%這種SET語法只能直接在BAT代碼的提前賦予變量的值,有時候我們需要提供一個交互界面,讓用戶自己輸入變量的值,然后我們在來根據這個值來做相應操作,現在我就來說說這SET的這種語法,只需要加一個/P參數就可以了!例子:echooffset/pvar=請輸入變量的值:if%var%=1echo您輸入了1_pauseset/p是命令語法var是變量名=號右邊的請輸入變量的值:,這個是提示語,不是變量的值了!運行后,我們在提示語后面直接輸入1,就會顯示一行您輸入了1_,輸入別的就沒有任何反映!,12,使用set/?查看SET的幫助我們發(fā)現SET除了我上面講的SETvariable=stringSET/Pvariable=promptString這兩種語法外,還有如下幾種語法:SET/Aexpression環(huán)境變量替換已如下增強:%PATH:str1=str2%PATH:10,5%PATH:-10%PATH:0,-2%這機種語法有什么用處呢?現在我們來一個個講解他們!SET/Aexpression/A命令行開關指定等號右邊的字符串為被評估的數字表達式。該表達式評估器很簡單并以遞減的優(yōu)先權順序支持下列操作:()-分組!-一元運算符*/%-算數運算符+-算數運算符=,-表達式分隔符,13,上面這些是系統(tǒng)幫助里的內容,看著是不是有點暈,沒關系我來簡單解釋一下:set的/A參數就是讓SET可以支持數學符號進行加減等一些數學運算!現在開始舉例子介紹這些數學符號的用法:看例子這里的例子請直接在CMD下拷貝命令運行,不需要保存為BAT!set/avar=1+1set/a語法,var變量名1+1數學式子拷貝運行后會直接顯示一個2,或者運行完后我們輸入echo%var%,也是二,這就是一個簡單的加法運算!set/avar=2-1結果是多少呢?如果你看不到結果就echo%var%.set/avar=2*2乘法運算set/avar=2/2除法運算set/avar=(1+1)+(1+1)結果等于4看得懂吧!set/aa=1+1,b=2+1,c=3+1運行后會顯示一個4,但我們用echo%a%b%c%后看結果,會發(fā)現其他數學運算也有效果!,這就是斗號的作用!有時候我們需要直接在原變量進行加減操作就可以用這種語法set/avar+=1這樣的語法對應原始語法就是set/avar=%var%+1都是一樣的結果,在原變量的值上在進行數學運算,不過這樣寫簡單一點在來一個:set/avar*=2,14,其他都這么用,只要幫助里有這個語法!另外還有一些用邏輯或取余操作符,這些符號,按照上面的使用方法會報錯的比如我們在CMD里輸入set/avar=1=這樣的簡單用法如set/avar&=1等于set/avar=%var%&1注意引號好符號說到這,現在說%PATH:str1=str2%這個是替換變量值的內容,看例子echooffseta=echo替換前的值:%a%setvar=%a:=%echo替換后的值:%var%pause對比一下,我們發(fā)現他把變量%a%的空格給替換掉了,從這個例子,我們就可以發(fā)現%PATH:str1=str2%這個操作就是把變量%PATH%的里的str1全部用str2替換比如我們把上面的例子改成這樣,15,echooffseta=echo替換前的值:%a%setvar=%a:.=傷腦筋%echo替換后的值:%var%pause解釋setvar=%a:.=傷腦筋%set命令var變量名字a是要進行字符替換的變量的值,.為要替換的值,傷腦筋為替換后的值!執(zhí)行后就會把變量%a%里面的.全部替換為傷腦筋這就是set的替換字符的很好的功能!先講到這%PATH:10,5%這個什么意思,看例子:echooffseta=setvar=%a:1,2%echo%var%pause執(zhí)行后,我們會發(fā)現只顯示了bs兩個字母,我們的變量%a%的值不是為嗎怎么只顯示了第2個字母和第3個字母bs,分析一結果我們就可以很容易看出%PATH:10,5%就是顯示變量PATH里指定幾位的值!分析setvar=%a:1,2%set命令var變量值a要進行字符操作的變量1從變量a第幾位開始顯示2顯示幾位和起來就是把變量a的值從第一位開始,把后兩位賦予給變量var就樣因該明白了吧其他兩種語法,16,%PATH:-10%PATH:0,-2%他們也是顯示指定變量指定幾位的值得的意思%PATH:-10%例子echooffseta=setvar=%a:-3%echo%var%pause這個就是把變量a倒數3位的值給變量VAR當然我們也可以改成這樣echooffseta=setvar=%a:3%echo%var%pause這個就是把變量a的從第3位開始后全部的值給變量VAR%PATH:0,-2%例子echooffseta=setvar=%a:0,-3%echo%var%pause執(zhí)行后,我們發(fā)現顯示的是bbs.verybat,少了.cn從結果分析,很容易分析出,這是把變量a的值從0位開始,到倒數第三位之間的值全部賦予給var如果改成這樣echooffseta=setvar=%a:2,-3%echo%var%pause那么他就是顯示從第2位開始減去倒數三位字符的值,并賦予給變量var,17,是對特殊符號“”,“f:以上命令相當于同時執(zhí)行dirc:dird:dire:dirf:,18,看完以上教程,如果你學過編程會發(fā)現批處理和編程很相似只不過比編程更加簡單,很多思想也跟編程相同,你學起來會很輕松!當然你沒學過編程也不要緊,我們可以從批處理開始去領會編程的思想。學完上面的教程我們已經對批處理已經有一定的認識了,下面我們將在例子中學習!,小總結,19,黑基里常看到的一個帖子,用批處理清理垃圾文件。那么我們先從他開始學習!先發(fā)全部代碼echooffECHO.ECHO.pause(如果你不知道以上四段什么意思的話,請重新看教程)echo我在清理系統(tǒng)垃圾文件,等等就好del/f/s/q%systemdrive%*.tmp(刪除所有后綴為tmp的文件)del/f/s/q%systemdrive%*._mp(同理,這是刪除所有分區(qū)中后綴為_mp的文件)del/f/s/q%systemdrive%*.logdel/f/s/q%systemdrive%*.giddel/f/s/q%systemdrive%*.chkdel/f/s/q%systemdrive%*.olddel/f/s/q%systemdrive%recycled*.*del/f/s/q%windir%*.bakdel/f/s/q%windir%prefetch*.*rd/s/q%windir%temp&md%windir%tempdel/f/q%userprofile%cookies*.*del/f/q%userprofile%recent*.*(下面幾個命令你可以看下目錄在哪!)del/f/s/q“%userprofile%LocalSettingsTemporaryInternetFiles*.*”del/f/s/q%userprofile%LocalSettingsTemp*.*del/f/s/q%userprofile%recent*.*echo清理系統(tǒng)垃圾完成!echo.&pause(顯示停止),例一,20,上面出現了一些新的命令,那么我來解釋一下!&這可以說是最簡單的一個組合命令了,它的作用是用來連接n個DOS命令,并把這些命令按順序執(zhí)行,而不管是否有命令執(zhí)行失敗。我同時順帶說些命令,以便記憶.和這兩個命令的效果從本質上來說都是一樣的,他們都是輸出重定向命令,說的通俗一點,就是把前面命令的輸出寫入到一個文件中。這兩個命令的唯一區(qū)別是,會清除掉原有文件中的內容后把新的內容寫入原文件,而只會另起一行追加新的內容到原文件中,而不會改動其中的原有內容。例如dir*.txt記錄.txt系統(tǒng)回自動生成一個記錄.txt,再運行一次你打開記錄.txt,你發(fā)現了什么?替換成dir*.txt記錄.txt呢?|利用這個命令在執(zhí)行多條命令時,當遇到一個執(zhí)行正確的命令就退出此命令組合,不再繼續(xù)執(zhí)行下面的命令。Ping這個命令如果你不知道,我沒話說了你再去黑基學習一段時間吧exit退出放在命令后面,命令執(zhí)行完畢后就結束了。,21,上面的例子這么,下面我們來個短的例子。當我們要建立一個IPC$連接地時候總要輸入一大串命令,弄不好就打錯了,所以我們不如把一些固定命令寫入一個批處理,把肉雞地ippasswordusername當著參數來賦給這個批處理,這樣就不用每次都打命令了。echooffnetuse1%ipc$2%/u:3%注意哦,這里PASSWORD是第二個參數。iferrorlevel1echoconnectionfailed相信IPC$連接你已經看過了,什么?你沒看過?那么你再去可以略過這個例子,多在黑基學習學習!,例子2,22,例子三,如何用批處理實現定時關機!新建一個批處理,然后輸入內容:at23:00Shutdown/s/t30/c很晚了,休息吧,晚安!然后可以把這個文件復制到C:DocumentsandSettingsAllUsers開始菜單程序啟動目錄下每次開機就會運行這個關機的文件.當到23點的時候就會提示關機了!還可以打開注冊表:HKEY_LOCAL_MACHINESOFTWARE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網購退款協(xié)議書范本
- 物資置換協(xié)議書范本
- 廣告宣傳授權委托協(xié)議書范本詳細解讀
- 智能制造園區(qū)場地使用權出讓合同范本
- 車輛運輸合同模板:長途貨運車輛運輸與保險
- 餐飲店員工培訓與發(fā)展協(xié)議
- 主題餐廳投資合作及品牌輸出協(xié)議
- 高原橋梁混凝土抗凍配比研究與應用
- 2024年高考語文二輪復習專題3散文閱讀突破練12詞句理解與表達技巧賞析
- 上消化道碘水造影護理
- 配電室巡檢培訓
- 項目部組織安排
- 妊娠期非產科手術麻醉管理
- 武警防暴隊形課件
- DB21T 3163-2019 遼寧省綠色建筑施工圖設計評價規(guī)程
- 采購合規(guī)培訓
- 黨建標準化建設培訓
- 臨時停車場設施建設方案
- 小學家校共育合作實施方案
- 警用執(zhí)法記錄儀培訓
- 財務崗位招聘筆試題及解答(某大型國企)2025年
評論
0/150
提交評論