《批处理经典入门教程》由会员分享,可在线阅读,更多相关《批处理经典入门教程(34页珍藏版)》请在金锄头文库上搜索。
1、1批处理经典入门教程这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识。写这篇教程 的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的 方法,就是慢!慢慢的,如同品一个女人、一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远 的东西却又突然回到了眼前。. 先概述一下批处理是个什么东东。批处理的定义,至今我也没能给出一个合适的-众多高手们也都没给出-反正我不 知道-看了我也不一定信服-我是个菜鸟,当然就更不用说了;但我想总结出一个“比较合适的” ,而且我也相信自 己可以把它解释的
2、很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情。或许你会因为这篇文章 而“无条件爱上批处理” ,那么我的目的就达到了-我就是要让你爱上它,我就这么拽,你能怎么着?真的,爱有时 候就这么拽,就是这么没理由,就是这么不要脸!真的! 按照我的理解,批处理的本质,是一堆 DOS 命令按一定顺序排列而形成的集合。 OK,never claver and get to business(闲话少说言归正传) 。批处理,也称为批处理脚本,英文译为 BATCH,批处理文 件后缀 BAT 就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就 ok 了:每一行可视为一个命令,每个命令里
3、可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是 DOS。批处理有一个很鲜明的特点:使用方 便、灵活,功能强大,自动化程度高。我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?) 的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。所以我会用很多简单实用的例子让读这篇教程的朋友 去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有 什么关系?答案:没有!) 。再说句“闲话”:要学好批处理,DOS 基础一定要牢!当然脑子灵活也是很重要的一方面。 例一、先给出一个最 easy 的批处理脚本让大家和
4、它混个脸熟,将下面的几行命令保存为name.bat 然后执行(以后文中只给 出代码,保存和执行方式类似): ping a.txt ping a.txt ping a.txt ping a.txt ping a.txt ping a.txt ping a.txt ping a.txt exit 2是不是都能看的懂?是不是很 easy?但它的作用却是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为 a.txt 的文件,它里面记录的信息可以帮助你迅速找到速度最快的 QQ 服务器,从而远离“从服务器中转”那一痛苦的过程 。这里的意思,是把前面命令得到的东西放到后面所给的地方,的
5、作用,和的相同,区别是把结果追加到前一行得出 的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt 文件越来越大(想到如何 搞破坏了?) 。By the way,这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东,执行后直接 显示速度最快的服务器 IP,是不是很爽?后面还将详细介绍。 例二、再给出一个已经过时的例子(a.bat): echo off if exist C:Progra1TencentAD*.gif del C:Progra1TencentAD*.gif a.bat 为什么说这是个过时的例子呢?很简单,因为现在已经几乎没有人用带
6、广告的 QQ 了(KAO,我的 QQ 还显示好友三围呢! ) ,所以它几乎用不上了。但曾经它的作用是不可小窥的:删除 QQ 的广告,让对话框干干净净。这里用的地址是 QQ 的默认 安装地址,默认批处理文件名为 a.bat,你当然可以根据情况自行修改。在这个脚本中使用了 if 命令,使得它可以达到适 时判断和删除广告图片的效果,你只需要不关闭命令执行后的 DOS 窗口,不按 CTRL+C 强行终止命令,它就一直监视是否有 广告图片(QQ 也再不断查看自己的广告是否被删除) 。当然这个脚本占用你一点点内存,呵呵。 例三,使用批处理脚本查是否中冰河。脚本内容如下: echo off netstat
7、-a -n a.txt type a.txt | find 7626 & echo Congratulations! You have infected GLACIER! del a.txt pause & exit 这里利用了 netstat 命令,检查所有的网络端口状态,只需要你清楚常见木马所使用的端口,就能很 easy 的判断出来是否 被人种了冰河。然这不是确定的,因为冰河默认的端口7626,完全可以被人修改。这里介绍的只是方法和思路。这里介绍 的是方法和思路稍做改动,就变成可以检查其他木马的脚本了,再改动一下,加进去参数和端口及信息列表文件后,就变 3成自动检测所有木马的脚本了。呵呵,
8、是不是很过瘾?脚本中还利用了组合命令&和管道命令|,后面将详细介绍。 详细出处参考:http:/ echo off if exist c:windowstemp*.* del c:windowstemp*.* if exist c:windowsTempor1*.* del c:windowsTempor1*.* if exist c:windowsHistory*.* del c:windowsHistory*.* if exist c:windowsrecent*.* del c:windowsrecent*.* 将以上脚本内容保存到 autoexec.bat 里,每次开机时就把系统垃圾给
9、自动删除了。这里需要注意两点:一、DOS 不支持长 文件名,所以就出现了 Tempor1 这个东东;二、可根据自己的实际情况进行改动,使其符合自己的要求。 怎么样,看到这里,你对批处理脚本是不是已经有点兴趣了?是不是发现自己已经慢慢爱上了这个东东?别高兴的太早, 爱不是一件简单的事,它也许能带给你快乐和幸福,当然也能让你痛苦的想去跳楼。如果你知道很难还敢继续的话,I 服 了 YOU!继续努力吧,也许到最后你不一定得到真爱(真的有这可能,爱过的人都知道) ,但你可以体会到整个爱的过程 ,就是如此。 酸、苦和辣,有没有甜天知道。 为什么会把批处理和爱情扯上关系?不是我无聊,也不是因为这样写有趣多少
10、,原因有二:其一,批处理和爱情有很多相 同的地方,有些地方我用“专业”的行话解释不清(我不怀疑自己的表达能力,而是事情本身就不好说清楚) ,说了=没 说,但用地球人都知道的爱情一比喻(爱情是什么?我*怎么知道!) ,没准你心里一下就亮堂了,事半功倍,何乐而 不为?其二,我这段时间状态不是很好,感冒发烧头疼鼻塞,但主要还是感情上精神摧残,搞的人烦透了,借写教程之际 感慨几句,大家就全当买狗皮膏药了,完全可以省略不看(也许还真有点效果-不至于让你看着看着就睡着了,把头磕 了来找我报销医药费) 。说不定下次的教程中大家还会看到杨过、张无忌等金老前辈笔下的英雄们。 看过第一章的朋友,一定对批处理有了初
11、步的印象,知道它到底是用来干什么的了。但你知道运用批处理的精髓在哪里吗 ?其实很简单:思路要灵活!没有做不到的,只有想不到的。这和爱情就有点不同了,因为爱情的世界是两个人的世界, 一厢情愿不叫爱情(补充:那叫单恋。废话!)而批处理却是一个人的天堂,你可以为所欲为,没有达不到的境界! 批处理看起来杂乱无章,但它的逻辑性之强,绝对不比其他程序语言(如汇编)低,如果你写的脚本是一堆乱麻,虽然每 一行命令都正确,但从头执行到尾后,不一定得到你想要的结果,也许是一屏幕的 Bad command or fail name。这又和爱 情有了共同点:按步骤来经营,缺少或增多的步骤都可能导致不想看见的结果。陷入
12、爱河的朋友,相信没有不肯定这句话 的。我的爱情批处理,输出的结果不是 Bad command or fail name,屏幕是这4么显示的:你的爱情不是内部或外部命 令,也不是可运行的程序或批处理文件。然后就是光标不停闪动,等待这下一次错误的输入。 从这一章开始,将由浅入深的介绍批处理中常用的命令,很多常见 DOS 命令在批处理脚本中有这广泛的应用,它们是批处 理脚本的 BODY 部分,但批处理比 DOS 更灵活多样,更具备自动化。要学好批处理,DOS 一定要有比较扎实的基础。这里只讲 述一些比较少用(相对来说)的 DOS 命令,常用命令如 COPY、DIR 等就不做介绍了(这些看似简单的命令
13、实际复杂的很,我 怕自己都说不清楚!) 。 例五,先看一个实例。这是一个很有意思的脚本,一个小巧实用的好东东,把批处理“自动化”的特点体现的淋漓尽致。 先介绍一下这个脚本的来历:大家都知道汇编程序(MASM)的上机过程,先要对源代码进行汇编、连接,然后再执行,而 这中间有很多环节需要输入很多东西,麻烦的很(只有经历过的朋友才懂得) 。如何使这个过程变的简单呢?在我们搞汇 编课程设计时,我“被逼”写了这个脚本,用起来很爽,呵呵。看看脚本内容: echo off :close echo cls :clean screen echo This programme is to make the MAS
14、M programme automate :display info echo Edit by CODERED :display info echo Mailto me : qqkiller* :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
15、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 5:display usage 先不要被这一堆的东西给吓怕了,静下心来仔细的看(回想一下第一章中第一段是怎么写的!) 。已经给出了每一行命 令的解释,两个冒号后面的内容为前一行内容解释的 E 文(害怕 E 文的朋友也不用担心,都很 easy,一看就懂了,实在不懂 了不会查词典啊,这么懒?) ,在脚本执行时不显示,也不起任何作用。倒数第