学会批处理
作者 佚名
来源 批处理
浏览
发布时间 2013-07-09
,至于连脚本的参数一起使用的情况,在后面的学习中自然就会有比较深刻的理解,这是因为当你已经可以灵活运用批处理脚本后,如何使代码写的更精简更完美更高效就自然包括到了考虑的范围,这时候你就会发现在调用脚本时直接加入参数,可以使代码效率加倍。Bytheway,上面的这几个脚本,都是Bat.Worm.Muma病毒的一部分,在后面的教程里,大家将有机会见到这个病毒的真面目。 那是不是说,在同一个目录下至少存在两个批处理脚本文件(只有一个你调用谁?)?呵呵,注意了,这句话错了!!只有一个照样可以调用----调用自身!看例九(默认脚本文件名a.bat): netsend%1Thisisacallexample. calla.bat 这两句一结合,效果自然不怎么样,因为只有一台机器来发消息,谁怕谁啊?我给你来个礼尚往来!可如果有100台机器同时执行,而且每台机器开10和窗口同时向一个目标机器发消息的话,呵呵。这里calla.bat的作用就是调用自身,执行完前一句netsend命令后再调用自身,达到了循环执行的目的。 给出一个很有意思的脚本,有兴趣的朋友可以实验一下。例十(默认脚本文件名为a.bat): calla.bat 一定要在DOS窗口下执行,否则只会看到一个窗口一闪而过,看不到最后结果。等执行完后,当脚本被执行了1260次,别忘了想一下到底是为什么!爱情有时候跟这个脚本一样,一旦陷入死循环,最后的结果都是意想不到的。只是爱情,绝对不会等到被毫无理由的循环这么多次,也许在第三次时就出现了loveisaborted的提示。 9、find 这是一个搜索命令,用来在文件中搜索特定字符串,通常也作为条件判断的铺垫程序(我怎么突然想起了这四个字?)。这个命令单独使用的情况在批处理中是比较少见的,因为没什么实际意义。还是借例三来说明: @echooff netstat-a-n>a.txt typea.txt|find"7626"&&echo"Congratulations!YouhaveinfectedGLACIER!" dela.txt pause&exit 先用netstat命令检查是否有冰河默认的端口7626在活动,并把结果保存到a.txt中。然后使用type命令列出a.txt中的内容,再在列出的内容中搜索字符串“7626”,发现有的话则提示中了冰河,否则退出。看,find命令其实就这么简单,但有一点必须要注意到:如果不使用type命令列出a.txt中的内容,而是直接使用find命令在a.txt中找“7626”(finda.txt"7626"&&echo"Congratulations!YouhaveinfectedGLACIER!"),就必须得给出这个a.txt的绝对路径(我试过了,find并没有默认路径就是当前路径的功能,必须手动指定。也许是我错了,欢迎指正)。因为在find命令的帮助里有这么一句话:如果没有指定路径,find将搜索键入的或者由另一个命令产生的文字。这里的“另一个命令”自然就指的type命令了。 至于find命令的其他几个参数如v、n、i等,有兴趣的朋友自己去研究吧,这已经属于DOS学习的内容了,这里就不做介绍。关于find命令和其他命令的一些更精妙的用法(有些简直令人叫绝),后续的教程中将介绍,希望关注。 10、for、set、shift 为什么把这三个命令放到一起来讲?原因除了我说明外,恐怕谁也想不到!很简单的一句话:其实我也不太懂!是的,对于这两个命令,我是从研究Bat.Worm.Muma病毒开始学习的,时间过去了不少,但还是没完全搞明白,我怕讲出来连自己都看不懂,我更怕不小心讲错了成了罪人。所以我给出一个脚本去告诉你,如何让这两个命令给自己留一个初步的印象,其实也就是这两个命令的入门,而并不是说如何领会这两个命令。因为要领会如此精妙的两个命令(特别是for)谈何容易!也许你会表扬我说我诚实、不懂就不懂;也许你会骂我,让我既然不懂就赶紧滚蛋,不要在这里丢人显眼;也许你还会说一些别的这样那样好听或不好听的话,都随便你了,即使我不同意你说的话,我也会誓死捍卫你说话的权 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
关于学会批处理的所有评论