bat命令大全(编辑修改稿)内容摘要:

虑的范围,这时候你就会发现在调用脚本时直接加入参数,可以使代码效率加倍。 By the way,上面的这几个脚本,都是 病毒的一部分,在后面的教程里,大家将有机会见到这个病毒的真面目。 那是不是说,在同一个目录下至少存在两个批处理脚本文件(只有一个你调用谁。 )。 呵呵,注意了,这句话错了。 只有一个照样可以调用 调用自身。 看例九(默认脚本文件名 ): send %1 This is a call example. call 这两句一结合,效果自然不怎么样,因为只有一台机器来发消息,谁怕谁啊。 我给你来个礼尚往来。 可如果有 100台机器同时执行,而且每台机器开 10和窗口同时向一个目标机器发消息的话,呵呵。 这里 call 的作用就是调用自身,执行完前一句 send命令后再调用自身,达到了循环执行的目的。 给出一个很有意思的脚本,有兴趣的朋友可以实验一下。 例十(默认脚本文件名为 ): call 一定要在 DOS窗口下执行,否则只会看到一个窗口一闪而过,看不到最后 结果。 等执行完后,当脚本被执行了 1260 次,别忘了想一下到底是为什么。 爱情有时候跟这个脚本一样,一旦陷入死循环,最后的结果都是意想不到的。 只是爱情,绝对不会等到被毫无理由的循环这么多次,也许在第三次时就出现了 love is aborted的提示。 find 这是一个搜索命令,用来在文件中搜索特定字符串,通常也作为条件判断的铺垫程序(我怎么突然想起了这四个字。 )。 这个命令单独使用的情况在批处理中是比较少见的,因为没什么实际意义。 还是借例三来说明: @echo off stat a n type | find 7626 amp。 amp。 echo Congratulations! You have infected GLACIER! del pause amp。 exit 先用 stat命令检查是否有冰河默认的端口 7626在活动,并把结果保存到。 然后使用 type命令列出 ,再在列出的内容中搜索字符串 “7626” ,发现有的话则提示中了冰河,否则退出。 看,find 命令其实就这么简单,但有一点必须要注意到:如果不使用 type 命令列出 中的内容,而是直接使用 find 命令在 中找 “7626”( find 7626 amp。 amp。 echo Congratulations! You have infected GLACIER!),就必须得给出这个 (我试过了, find并没有默认路径就是当前路径的功能,必须手动指定。 也许是我错了,欢迎指正)。 因为在 find命令的帮助里有这么一句话:如果没有指定路径,find将搜索键入的或者由另一个命令产生的文字。 这里的 “另一个命令 ”自然就指的 type 命令 了。 至于 find命令的其他几个参数如 v、 n、 i等,有兴趣的朋友自己去研究吧,这已经属于 DOS学习的内容了,这里就不做介绍。 关于 find 命令和其他命令的一些更精妙的用法(有些简直令人叫绝),后续的教程中将介绍,希望关注。 for、 set、 shift 为什么把这三个命令放到一起来讲。 原因除了我说明外,恐怕谁也想不到。 很简单的一句话:其实我也不太懂。 是的,对于这两个命令,我是从研究 病毒开始学习的,时间过去了不少,但还是没完全搞明白,我怕讲出来连自己都看不懂,我更怕不小 心讲错了成了罪人。 所以我给出一个脚本去告诉你,如何让这两个命令给自己留一个初步的印象,其实也就是这两个命令的入门,而并不是说如何领会这两个命令。 因为要领会如此精妙的两个命令(特别是 for)谈何容易。 也许你会表扬我说我诚实、不懂就不懂;也许你会骂我,让我既然不懂就赶紧滚蛋,不要在这里丢人显眼;也许你还会说一些别的这样那样好听或不好听的话,都随便你了,即使我不同意你说的话,我也会誓死捍卫你说话的权利。 看例十一: @echo off for /? set /? shift /? exit 执行后在当前路径下就生成 、 ,里面分别记录了 for命令、 set命令和 shift命令的帮助信息。 地球人都能看懂,我就不多说了。 我在网上曾经找了很长时间这三个命令的教程,但都不理想,基本都是照搬的帮助信息。 我想在自己完全掌握了这两个命令后,一定要写一篇用自己的文字总结出来的 for、 set和 shift教程(关于 shift命令,后面介绍批处理的参数时还将涉及到),一定会的,这是我的心愿之一。 需要注意的一点是, 这三个命令的帮助里 ,介绍的都比较死板,虽然也举了一些例子,但这是远远不够的。 要掌握这两个命令,最需要的就是耐心。 没写错,就是耐心。 光是认真看完它们的帮助文字就已经需要足够的耐心了,要进一步练习领会这两个命令,难道不需要更大的耐心。 实战练习的机会我会留给你的,关键还是那句话,看你有没有耐心去研究了。 看看例十二: : CALL SET IPA= CALL 0 :NEARAGAIN stat n|find : FOR /F tokens=7,8,9,10,12 delims=.: %%I IN () DO SET NUM1=%%Iamp。 amp。 SET NUM2=%%Jamp。 amp。 SET NUM3=%%Kamp。 amp。 SET NUM4=%%Lamp。 amp。 SET NUM5=%%Mamp。 amp。 CALL :START CALL IF %NUM1%==255 GOTO NEARAGAIN IF %NUM1%==192 GOTO NEARAGAIN IF %NUM1%==127 GOTO NEARAGAIN IF %NUM2%==255 GOTO NEARAGAIN IF %NUM3%==255 GOTO NEARAGAIN IF %NUM4%==255 GOTO NEARAGAIN SET IPA=%NUM1%.%NUM2% ECHO START PING %IPA%.%NUM3%.1 PING %IPA%.%NUM3%.%NUM4% FIND /C /I from IF ERRORLEVEL 1 GOTO START CALL %NUM3% DEL GOTO START 这是 病毒的起始脚本,设置了病毒运行的环境变量。 是不是看的头都大了。 又忘了写在第一章第一段的那句话(静下心来。 ),你应该能体会到学习这两个命令所需要的耐心了吧。 就如同去爱一个人,你得学会宽容,打不得骂不得,用你宽大的胸怀去包容她的一切,即使你发现爱她的过程如看上面代码的过程一样让你头大,但你还是得爱下去 爱需要理由吗。 不需要吗。 需要吗。 不 需要吗 ……等到风平浪静后,最直观的收获就是,你的耐心变的前所未有的充足,面对她的复杂和善变,你自己会处变不惊,以自己的方式去从容应付曾经应付不了的场面,即使到最后一身伤痕,也会感慨曾经的举动有多么伟大。 没错,这就是批处理的魅力,这就是爱的魅力。 让你受了伤还感谢伤你的人。 这种感觉就好象在自己最喜欢的音乐声中被人强奸,痛并快乐着。 不得不再次重申一遍,各种 DOS命令是批处理的 BODY(我实在找不出一个更合适的词来形容他们之间的关系),学好 DOS命令是学好批处理的前提。 其他 DOS命令如 copy、 dir、 del、 type、 path、 break、 start等内部命令,以及 ping、 、 cmd、 at、 sort、 attrib、 fc、 find等外部命令,在批处理里的应用非常广泛。 这篇教程的作用,是教你认识批处理,以及如何利用 DOS命令组合出来一个完美的批处理脚本,去让它自动完成你想要它做的事情。 而灵活自如的编辑一个批处理脚本是建立在熟练掌握 DOS命令的基础上的,这已经超出了本文的范畴,在此就不赘述了。 不知不觉中第三章已经结束了。 耳麦里传来的依然是陈晓东的《比我幸福》,每隔 4分 32秒就自动重播。 虽然我不并不 很喜欢陈晓东,可这并不妨碍我喜欢音乐,喜欢这首描写的如此让人感慨的歌。 请你一定要比我幸福 /才不枉费我狼狈退出 /再痛也不说苦 /爱不用抱歉来弥补 /至少我能成全你的追逐 /请记得你要比我幸福 /才值得我对自己残酷 /我默默的倒数 /最后再把你看清楚 /看你眼里的我好馍糊 /慢慢被放逐。 我如同一个因年老失色而拉不到客的老妓女,绝望的徘徊在曾经辉煌的红灯区,用一脸的木然瞟一眼来来去去的人群,默默的回忆自己并不光彩的过去,幻想自己将要面对的未来。 直到看见那些幸福依偎在一起的情侣们,才突然间发现上帝的公平,和这种公平的残忍。 可以说,批处理脚本中最重要的几个命令我都没有给出如 echo或 if 那样比较详细的介绍,原因我已经说了,因为我也是个菜,我也不太懂 但我正在学。 你呢。 今天又去了一趟图书馆,淘金一样发现了一本叫《 DOS批文件》的东东,藏在一个角落里落满了灰,五本摞一起就跟砖头一样厚了。 大概翻了一下,里面介绍了很多比较底层和基础的东西,虽然从思路上讲,已经有点 time out了,很多东西已经基本没有利用的价值(这就是信息时代的更新速度),但还是很值得看的。 于是打算下午淘过来,放假回去了再好好研究一番,连同那几个不熟悉的命令一 起搞熟了,再续写这篇教程。 我始终坚信,没有最好只有更好。 但是很可惜,等到下午再去的时候,图书馆楼梯口已经立了一个牌子,上面写着 out of service人家这学期的工作结束了。 于是回到宿舍打算继续写第四章,正在这时又得到一个 “振奋人心 ”的消息:期末考试有一科挂了,而且是全班第一 这一门整个班里就挂了我一个。 郁闷的情绪刹那间涌上心头,整个世界仿佛都变成黑的了。 食堂和小卖部已经陆续关门,学校里的人越来越少,迎面过来的几个同学也都一身行李,忙碌着准备回家过年,内心的孤寂和失落如同夏日里暴雨前的 乌云,迅速而不可抗拒的占领了心里每一个角落。 迎着一月的冷风我一个人在天桥上发呆,还能怎么样,连期末考试都应付不了的失败男人。 “课间休息 ”时间好象长了点,呵呵,上课了。 从这一章开始,将详细介绍批处理中常用的几个组合命令和管道命令。 这些命令虽然不是必须的,如同爱一个人时不一定非得每天去陪,但如果少了这个过程,事情就会变的复杂而不完美,所以我认为管道命令和组合命令是批处理的调味剂,几乎是少不了的。 下面从管道命令讲起。 常用的管道命令有以下这些: |、 、 1 | 这个命令恐怕大家不是很陌生,经常操作 DOS的朋友都应该知道,当我们查看一个命令的帮助时,如果帮助信息比较长,一屏幕显示不完时 DOS并不给我们时间让我们看完一屏幕再翻到另一屏幕,而是直接显示到帮助信息的最后。 如在提示符下输入 help 回车时,就会看到当前 DOS 版本所支持的所有非隐含命令,但你只能看到最后的那些命令,前面的早就一闪而过了,如何解决这个问题。 看例十三: help | more 回车后会发现显示满一屏幕后就自动暂停,等候继续显示其他信息。 当按写回车时,变成一个一个的出现;按下空格键时一屏幕一屏幕显示,直到全部显示完为止;按其他键自动 停止返回 DOS。 为什么会出现上述现象。 答案很简单,这里结合了管道命令 |和 DOS命令 more 来共同达到目的的。 这里先简单介绍一下 help命令和 more 命令,对理解 |命令的用法有很大帮助。 、 help命令。 其实这个命令是不需要多说的,但在上述例子中 help命令的用法比较特殊,直接在 DOS提示符下输入 help命令,结果是让 DOS显示其所支持的所有非隐含命令,而在其他地方用 help命令,如输入 help回车,则是显示 命令的帮助信息。 、 more命令。 可能很多朋友以前就没有接触过这 个命令,这个命令在 Linux 下的用处非常广泛,也是管道命令之一。 大家可以找一篇比较长的文章( )在 DOS提示符下输入如下两个命令去比较一下差别:more type。 利用 more 命令,可以达到逐屏或逐行显示输出的效果,而 type 命令只能一次把输出显示完,最后的结果就是只能看到末尾的部分。 在例十三里, more 命令的作用就是让输出的信息逐屏或逐行显示。 看到这里,你是否已经能隐约感受到了 |命令的作用了。 没错,它的作用,就是把前一命令的输出当后一命令的输入来用的。 在例十三里,前一命令 的输出,就是 help 命令执行后显示的 DOS 所支持的所有非隐含命令,而这个结果刚好做了后一命令 more的输入。 所以例十三和下面的例十四是等效的: help more del 这里利用另一管道命令 生成了一个 ,在用 more 命令查看 文件(例十三的所有操作是在内存中进行的,不生成文件)。 可以看出,正确使用管道命令 |可以带来事半功倍的效果。 结合例十三和例十四,以及前面的例九再体会一遍: |命令的作用,就是让前一命令 的输出当做后一命令的输入。 1 、 这两个命令的效果从本质上来说都是一样的,他们都是输出重定向命令,说的通俗一点,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。