資源描述:
《bat批處理:bat批處理教程(三)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、bat批處理:bat批處理教程(三)學(xué)過匯編或C朋友肯定都知道call指令表示什么意思了在這里它意思其實(shí)也是樣在批處理腳本中call命令用來從個(gè)批處理腳本中另個(gè)批處理腳本看例8(默認(rèn)3個(gè)腳本文件名分別為start.bat、10.bat和ipc.bat):start.bat:……CALL10.BAT0……10.bat:……ECHO%IPA%.%1>HFIND.TMP……CALLipc.batIPCFind.txtipc.bat:for/f"tokens=1,2,3delims="%%iin(%1)docallHACK.bat%%i%%j%%k有沒
2、有看出什么不對地方?沒看出來???沒看出來就對了其實(shí)就沒有不對地方嘛你如何看出來!從上面兩個(gè)腳本你可以得到如下信息:1、腳本可以靈活運(yùn)用循環(huán)運(yùn)用、重復(fù)運(yùn)用2、腳本可以使用參數(shù)!有關(guān)第點(diǎn)就不多說了聰明你看就應(yīng)該會(huì)這里說下第2點(diǎn)在start.bat中10.bat后面跟了參數(shù)0在執(zhí)行時(shí)效果其實(shí)就是把10.bat里參數(shù)%1用0代替在start.bat中ipc.bat后面跟了參數(shù)ipcfind.txt(個(gè)文件也可以做參數(shù))執(zhí)行時(shí)效果就是用ipc.bat中每行3個(gè)變量(這里不懂沒關(guān)系學(xué)過for命令后就懂了)對應(yīng)代換ipc.bat中%%i、%%j和%%k這里參
3、數(shù)是非常靈活使用時(shí)需要好好體會(huì)在初學(xué)期間可以先學(xué)習(xí)只腳本至于連腳本參數(shù)起使用情況在后面學(xué)習(xí)中自然就會(huì)有比較深刻理解這是當(dāng)你已經(jīng)可以靈活運(yùn)用批處理腳本后如何使代碼寫更精簡更完美更高效就自然包括到了考慮范圍這時(shí)候你就會(huì)發(fā)現(xiàn)在腳本時(shí)直接加入?yún)?shù)可以使代碼效率加倍Bytheway上面這幾個(gè)腳本都是Bat.Worm.Muma病毒部分在后面教程里大家將有機(jī)會(huì)見到這個(gè)病毒真面目。那是不是說在同個(gè)目錄下至少存在兩個(gè)批處理腳本文件(只有個(gè)你誰?)?呵呵注意了這句話錯(cuò)了??!只有個(gè)照樣可以----自身!看例9(默認(rèn)腳本文件名a.bat):netsend%1Thisi
4、sacallexample.calla.bat這兩句結(jié)合效果自然不如何樣只有臺(tái)機(jī)器來發(fā)消息誰怕誰啊?我給你來個(gè)禮尚往來!可如果有100臺(tái)機(jī)器同時(shí)執(zhí)行而且每臺(tái)機(jī)器開10和窗口同時(shí)向個(gè)目標(biāo)機(jī)器發(fā)消息話呵呵這里calla.bat作用就是自身執(zhí)行完前句netsend命令后再自身達(dá)到了循環(huán)執(zhí)行目的。給出個(gè)很有意思腳本有興趣朋友可以實(shí)驗(yàn)下例十(默認(rèn)腳本文件名為a.bat):calla.bat定要在DOS窗口下執(zhí)行否則只會(huì)看到個(gè)窗口閃而過看不到最后結(jié)果等執(zhí)行完后當(dāng)腳本被執(zhí)行了1260次別忘了想下到底是為什么!愛情有時(shí)候跟這個(gè)腳本樣旦陷入死循環(huán)最后結(jié)果都是意想
5、不到只是愛情絕對不會(huì)等到被毫無理由循環(huán)這么多次也許在第3次時(shí)就出現(xiàn)了loveisaborted提示。9、find這是個(gè)搜索命令用來在文件中搜索特定串通常也作為條件判斷鋪墊(我如何突然想起了這4個(gè)字?)這個(gè)命令單獨(dú)使用情況在批處理中是比較少見沒什么實(shí)際意義還是借例3來介紹說明:@echooffnetstat-a-n>a.txttypea.txt
6、find"7626"&&echo"Congratulations!YouhaveinfectedGLACIER!"dela.txtpause&exit先用netstat命令檢查是否有冰河默認(rèn)端口7626在
7、活動(dòng)并把結(jié)果保存到a.txt中然后使用type命令列出a.txt中內(nèi)容再在列出內(nèi)容中搜索串“7626”發(fā)現(xiàn)有話則提示中了冰河否則退出看find命令其實(shí)就這么簡單但有點(diǎn)必須要注意到:如果不使用type命令列出a.txt中內(nèi)容而是直接使用find命令在a.txt中找“7626”(finda.txt"7626"&&echo"Congratulations!YouhaveinfectedGLACIER!")就必須得給出這個(gè)a.txt絕對路徑(我試過了find并沒有默認(rèn)路徑就是當(dāng)前路徑功能必須手動(dòng)指定也許是我錯(cuò)了歡迎指正)在find命令幫助里有這么句話:
8、如果沒有指定路徑find將搜索鍵入或者由另個(gè)命令產(chǎn)生文字這里“另個(gè)命令”自然就指type命令了。至于find命令其他幾個(gè)參數(shù)如v、n、i等有興趣朋友自己去研究吧這已經(jīng)屬于DOS學(xué)習(xí)內(nèi)容了這里就不做介紹有關(guān)find命令和其他命令些更精妙使用方法(有些簡直令人叫絕)后續(xù)教程中將介紹希望關(guān)注10、for、、sht為什么把這3個(gè)命令放到起來講?原因除了我介紹說明外恐怕誰也想不到!很簡單句話:其實(shí)我也不太懂!是對于這兩個(gè)命令我是從研究Bat.Worm.Muma病毒開始學(xué)習(xí)時(shí)間過去了不少但還是沒完全搞明白我怕講出來連自己都看不懂我更怕不小心講錯(cuò)了成了罪人所
9、以我給出個(gè)腳本去告訴你如何讓這兩個(gè)命令給自己留個(gè)初步印象其實(shí)也就是這兩個(gè)命令入門而并不是說如何領(lǐng)會(huì)這兩個(gè)命令要領(lǐng)會(huì)如此精妙兩個(gè)命令(特別是for)談何