Board logo

标题: [转贴] VBS脚本监控网络单线程流量 [打印本页]

作者: VBScript    时间: 2012-4-13 23:22     标题: VBS脚本监控网络单线程流量

  1. dim obj
  2. set obj=createobject("wscript.shell")   '定义一个DOS控件
  3. obj.run "command /c ab -k -n 3 -c 1 http://www.bjnet.net.cn/images/main.jpg |grep Transfer >out1.txt ",0,true              '在该控件下运行ab工具加参数,“0”表示不显示DOS运行窗口
  4. set   obj=nothing              '结束调用控件
  5. dim Temp                    '定义一个变量
  6. Const ForReading = 1
  7. Set objFSO = CreateObject("Scripting.FileSystemObject") '?
  8. Set objTextFile = objFSO.OpenTextFile("F:\Tools\网络测速\out1.txt", ForReading,true)
  9. '打开指定文件内容,也可用相对路径,把里面的内容取出
  10. strResponses = objTextFile.ReadAll          '把内容给strResponses
  11. Temp=Mid(strResponses,25,5)                  '从字段的第25个字节开始,取5个出来,给Temp
  12. if cdbl(Temp) < 1000  then                            'cdbl()函数是将字符串转成数值,if是将转换的值和1000比较
  13. Wscript.Echo "电信:只有"&Temp&" Kbytes/sec"     ' Wscript.Echo是输出一个窗口,&是字符串连接符,
  14. end if                                                      '结束条件语句
  15. objTextFile.Close                                     '结束控件调用
复制代码


小结:在写这个脚本时,曾想到用批处理文件来实现,获取单线程流量可以实现,发出警告信息也可以实现,但在比较什么时候发出警告时,遇到问题,就是在批处理文件里不能用if a < b  then 来比较大小,只能比较是否相等(if a ==b  then),网上也没有相关的说明文件,在这找这方面的资料时,用了一个上午的时间。之后,就想到用VBS脚本来实现,在这个过程中,第一个问题就是如何来调用ab工具测试单线程流量,第二个问题就是如何实现读取文件内容,如何比较里面的内容,先前是比较获取的全部内容(“Transfer rate:          371.53 [Kbytes/sec] received”),发现有出错提示,说常量没有结束,经测试是因为定义的变量长度不够,并且比较字符串的结果,不能说明是否应该发出警告。于是,只能提取其中的一个部分内容来比较,那就是数值部分(“371.53”),第三个问题就是如何把字符串转换成数值,在这里用到了Mid()函数。

http://jackeyzhu.blog.51cto.com/345718/181648




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2