文档视界 最新最全的文档下载
当前位置:文档视界 › bat批处理:bat批处理教程(三)

bat批处理:bat批处理教程(三)

bat批处理:bat批处理教程(三)
bat批处理:bat批处理教程(三)

bat批处理:bat批处理教程(三) 学过汇编或C朋友肯定都知道call指令表示什么意思了在这里它意思其实也是样在批处理脚本中call命令用来从个批处理脚本中另个批处理脚本看例 8(默认 3个脚本文件名分别为start.bat、10.bat和ipc.bat):

start.bat:

……

CALL 10.BAT 0

……

10.bat:

……

ECHO %IPA%.%1 >HFIND.TMP

……

CALL ipc.bat IPCFind.txt

ipc.bat:

for /f "tokens=1,2,3 delims= " %%i in (%1) do call HACK.bat %%i %%j %%k

有没有看出什么不对地方?没看出来啊?没看出来就对了其实就没有不对地方嘛你如何看出来!从上面两个脚本你可以得到如下信息:

1、脚本可以灵活运用循环运用、重复运用

2、脚本可以使用参数!有关第点就不多说了聪明你看就应该会这里说下第 2点

在start.bat中10.bat后面跟了参数0在执行时效果其实就是把10.bat里参数%1用0代替在start.bat中ipc.bat后面跟了参数ipcfind.txt(个文件也可以做参数)执行时效果就是用ipc.bat中每行3个变量(这里不懂没关系学过for命令后就懂了)对应代换ipc.bat 中%%i、%%j和%%k这里参数是非常灵活使用时需要好好体会在初学期间可以先学习只脚本至于连脚本参数起使用情况在后面学习中自然就会有比较深刻理解这是当你已经可以灵活运用批处理脚本后如何使代码写更精简更完美更高效就自然包括到了考虑范围这时候你就会发现在脚本时直接加入参数可以使代码效率加倍By the way上面这几个脚本都是Bat.Worm.Muma病毒部分在后面教程里大家将有机会见到这个病毒真面目。

那是不是说在同个目录下至少存在两个批处理脚本文件(只有个你谁?)?呵呵注意了这句话错了!!只有个照样可以----自身!看例9(默认脚本文件名a.bat):

net send %1 This is a call example.

call a.bat

这两句结合效果自然不如何样只有台机器来发消息谁怕谁啊?我给

你来个礼尚往来!可如果有100台机器同时执行而且每台机器开10和窗口同时向个目标机器发消息话呵呵这里call a.bat作用就是自身执行完前句net

send命令后再自身达到了循环执行目的。

给出个很有意思脚本有兴趣朋友可以实验下例十(默认脚本文件名为a.bat):

call a.bat

定要在DOS窗口下执行否则只会看到个窗口闪而过看不到最后结果等执行完后当脚本被执行了1260次别忘了想下到底是为什么!爱情有时候跟这个脚本样旦陷入死循环最后结果都是意想不到只是爱情绝对不会等到被毫无理由循环这么多次也许在第 3次时就出现了love is aborted提示。

9、find

这是个搜索命令用来在文件中搜索特定串通常也作为条件判断铺垫(我如何突然想起了这 4个字?)这个命令单独使用情况在批处理中是比较少见没什么实际意义还是借例 3来介绍说明:

@echo off

netstat -a -n > a.txt

type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!"

del a.txt

pause & exit

先用netstat命令检查是否有冰河默认端口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命令帮助里有这么句话:如果没有指定路径find将搜索键入或者由另个命令产生文字这里“另个命令”自然就指type命令了。

至于find命令其他几个参数如v、n、i等有兴趣朋友自己去研究吧这已经属于DOS学习内容了这里就不做介绍有关find命令和其他命令些更精妙使用方法(有些简直令人叫绝)后续教程中将介绍希望关注

10、for、、sht

为什么把这 3个命令放到起来讲?原因除了我介绍说明外恐怕谁也想不到!很简单句话:其实我也不太懂!是对于这两个命令我是从研究Bat.Worm.Muma病毒开始学习时间过去了不少但还是没完全搞明白我怕讲出来连自己都看不懂我更怕不小心讲错了成了罪人所以我给出个脚本去告诉你如何让这两个命令给自己留个初步印象其实也就是这两个命令入门而并不是说如何领会这两个命令要领会如此精妙两个命令(特别是for)谈何容易!也许你会表扬我说我诚实、不懂就不懂;也许你会骂我

让我既然不懂就赶紧滚蛋不要在这里丢人显眼;也许你还会说些别这样那样好听或不好听话都随便你了即使我区别意你说话我也会誓死捍卫你说话权利看例十:

@echo off

for /? > for.txt

/? > .txt

sht /? >sht.txt

exit

执行后在当前路径下就生成for.txt、.txt和sht.txt 3个文件里面分别记录了for命令、命令和sht命令帮助信息地球人都能看懂我就不多说了我在网上曾经找了很长时间这 3个命令教程但都不理想基本都是照搬帮助信息。我想在自己完全掌握了这两个命令后定要写篇用自己文字整理总结出来for、和sht教程(有关sht命令后面介绍批处理参数时还将涉及到)定会这是我心愿的!需要注意点是这 3个命令帮助里介绍都比较死板虽然也举了些例子,但这是远远不够要掌握这两个命令最需要就是耐心!没写错就是耐心光是认真看完它们帮助文字就已经需要足够耐心了要进步练习领会这两个命令难道不需要更大耐心?实战练习机会我会留给你关键还是那句话看你有没有耐心去研究了看看例十 2: START.BAT:

CALL MUMA.BAT

SET IPA=192.168

CALL 10.BAT 0

:NEARAGAIN

netstat -n|find ":" >A.TMP

FOR /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 :START

CALL RANDOM.BAT

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 > A.LOG

PING %IPA%.%NUM3%.1>B.TMP

PING %IPA%.%NUM3%.%NUM4%>>B.TMP

FIND /C /I "from" B.TMP

IF ERRORLEVEL 1 GOTO START

CALL 10.BAT %NUM3%

DEL A.LOG

GOTO START

这是Bat.Worm.Muma病毒起始脚本设置了病毒运行环境变量是不是看头都大了?又忘了写在第章第段那句话(静下心来!)你应该能体会到学习这两个命令所需要耐心了吧就如同去爱个人你得学会宽容打不得骂不得用你宽大胸怀去包容她切即使你发现爱她过程如看上面代码过程样让你头大但你还是得爱下去----爱需要理由吗?不需要吗?需要吗?不需要吗……等到风平浪静后最直观收获就是你耐心变前所未有充足面对她复杂和善变你自己会处变不惊以自己方式去从容应付曾经应付不了场面即使到最后身伤痕也会感慨曾经举动有多么伟大。

没错这就是批处理魅力这就是爱魅力让你受了伤还感谢伤你人这种感觉就好象在自己最喜欢音乐声中被人强奸痛并快乐着。

不得不再次重申遍各种DOS命令是批处理BODY(我实在找不出个更合适词来形容他们的间关系)学好DOS命令是学好批处理前提其他DOS 命令如copy、dir、del、type、path、、start等内部命令以及ping、net、cmd、at、sort、attrib、fc、find等外部命令在批处理里应用非常广泛这篇教程作用是教你认识批处理以及如何利用DOS命令组合出来个完美批处理脚本去让它自动完成你想要它做事情而灵活自如编辑个批处理脚本是建立在熟练掌握DOS命令基础上这已经超出了本文范畴在此就不赘述了。

不知不觉中第 3章已经结束了耳麦里传来依然是陈晓东比我幸福每隔4分32秒就自动重播虽然我不并不很喜欢陈晓东可这并不妨碍我喜欢音乐喜欢这首描写如此让人感慨歌请你定要比我幸福/才不枉费我狼狈退出/再痛也不说苦/爱不用抱歉来弥补/至少我能成全你追逐/请记得你要比我幸福/才值得我对自己残酷/我默默倒数/最后再把你看清楚/看你眼里我好馍糊/慢慢被放逐我如同个因年老失色而拉不到客老妓女绝望徘徊在曾经辉煌红灯区用脸木然瞟眼来来去去人群默默回忆自己并不光彩过去幻想自己将要面对未来直到看见那些幸福依偎在起情侣们才突然间发现上帝公平和这种公平残忍。

可以说批处理脚本中最重要几个命令我都没有给出如echo或那样比较详细介绍原因我已经说了我也是个菜我也不太懂----但我正在学!你呢?今天又去了趟图书馆淘金样发现了本叫DOS批文件东东藏在个角落里落满了灰 5本摞起就跟砖头样厚了大概翻了下里面介绍了很多比较底层和基础东西虽然从思路上讲已经有点time out了很多东西已经基本没有利用价值(这就是信息时代更新速度)但还是很值得看于是打算下午淘过来放假回去了再好好研究番连同那几个不熟悉命令起搞熟了再续

写这篇教程我始终坚信没有最好只有更好

但是很可惜等到下午再去时候图书馆楼梯口已经立了个牌子上面写着out of service----人家这学期工作结束了于是回到宿舍打算继续写第 4章正在这时又得到个“振奋人心”消息:期末考试有科挂了而且是全班第----这门整个班里就挂了我个郁闷情绪刹那间涌上心头整个世界仿佛都变成黑了食堂和小卖部已经陆续关门学校里人越来越少迎面过来几个同学也都身行李忙碌着准备回家过年内心孤寂和失落如同夏日里暴雨前乌云迅速而不可抗拒占领了心里每个角落迎着月冷风我个人在天桥上发呆还能如何样连期末考试都应付不了失败男人。

“课间休息”时间好象长了点呵呵上课了!从这章开始将详细介绍批处理中常用几个组合命令和管道命令这些命令虽然不是必须如同爱个人时不定非得每天去陪但如果少了这个过程事情就会变复杂而不完美所以我认为管道命令和组合命令是批处理调味剂几乎是少不了。

欢迎您的下载,资料仅供参考!

相关文档