dedecms织梦内容管理系统      

--充电学院首页-- | --IT新闻与咨询-- | --电脑应用技术-- | --网络操作技巧-- | --软件硬件教程-- | --其他相关文章-- | --常用优秀软件-- | --桌面图片欣赏-- | --网络淘金技法-- | --媒体网站资源-- | --火狐专题介绍-- |

  当前位置:主页>精品资料收藏>文章内容
BAT教程全集(14)
来源: 作者:方舟 发布时间:2008-08-17  
stvista   8、call
  学过汇编或C的朋友,肯定都知道call指令表示什么意思了,在这里它的意思其实也是一样的。在批处理脚本中,call命令用来从一个批处理脚本中调用另一个批处理脚本。看例八(默认的三个脚本文件名分别为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、脚本调用可以使用参数!关于第一点就不多说了,聪明的你一看就应该会,这里说一下第二点。
  在start.bat中,10.bat后面跟了参数0,在执行时的效果,其实就是把10.bat里的参数%1用0代替。在start.bat中,ipc.bat后面跟了参数ipcfind.txt(一个文件,也可以做参数),执行时的效果,就是用ipc.bat中的每一行的三个变量(这里不懂没关系,学过for命令后就懂了),对应代换ipc.bat中的%%i、%%j和%%k。这里参数调用是非常灵活的,使用时需要好好体会。在初学期间,可以先学习只调用脚本,至于连脚本的参数一起使用的情况,在后面的学习中自然就会有比较深刻的理解,这是因为当你已经可以灵活运用批处理脚本后,如何使代码写的更精简更完美更高效就自然包括到了考虑的范围,这时候你就会发现在调用脚本时直接加入参数,可以使代码效率加倍。By the way,上面的这几个脚本,都是Bat.Worm.Muma病毒的一部分,在后面的教程里,大家将有机会见到这个病毒的真面目。
  那是不是说,在同一个目录下至少存在两个批处理脚本文件(只有一个你调用谁?)?呵呵,注意了,这句话错了!!只有一个照样可以调用----调用自身!看例九(默认脚本文件名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次,别忘了想一下到底是为什么!爱情有时候跟这个脚本一样,一旦陷入死循环,最后的结果都是意想不到的。只是爱情,绝对不会等到被毫无理由的循环这么多次,也许在第三次时就出现了love is aborted的提示。
  9、find
  这是一个搜索命令,用来在文件中搜索特定字符串,通常也作为条件判断的铺垫程序(我怎么突然想起了这四个字?)。这个命令单独使用的情况在批处理中是比较少见的,因为没什么实际意义。还是借例三来说明:
  @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命令和其他命令的一些更精妙的用法(有些简直令人叫绝),后续的教程中将介绍,希望关注。

[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·主板跳线连接方法详解(4)
·DOS命令大全
·主板跳线连接方法详解(1)
·超级兔子魔法设置使用技巧大全(7
·主板跳线连接方法详解(2)
·ETL工具介绍
·手工破解php网站
·主板跳线连接方法详解(3)
·玩转电脑技巧大全(0)
·主板跳线连接方法详解(5)
·图解手把手教您装电脑(6)
·主板跳线连接方法详解(7)
  相关文章
·BAT教程全集(13)
·BAT教程全集(15)
·BAT教程全集(12)
·BAT教程全集(16)
·BAT教程全集(11)
·BAT教程全集(17)
·BAT教程全集(10)
·BAT教程全集(18)
·BAT教程全集(9)
·BAT教程全集(19)
·BAT教程全集(8)
·BAT教程全集(20)
  兴趣话题
·
·
·全国地图服务
网站为ZQF个人所有 Power by DedeCms 所有文章来自网络,如有冒犯,请email 或 qq告之,谢谢