标题: [转贴] VBS脚本监控网络单线程流量 [打印本页]
作者: VBScript 时间: 2012-4-13 23:22 标题: VBS脚本监控网络单线程流量
- dim obj
- set obj=createobject("wscript.shell") '定义一个DOS控件
- 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运行窗口
- set obj=nothing '结束调用控件
-
- dim Temp '定义一个变量
- Const ForReading = 1
- Set objFSO = CreateObject("Scripting.FileSystemObject") '?
- Set objTextFile = objFSO.OpenTextFile("F:\Tools\网络测速\out1.txt", ForReading,true)
- '打开指定文件内容,也可用相对路径,把里面的内容取出
- strResponses = objTextFile.ReadAll '把内容给strResponses
- Temp=Mid(strResponses,25,5) '从字段的第25个字节开始,取5个出来,给Temp
- if cdbl(Temp) < 1000 then 'cdbl()函数是将字符串转成数值,if是将转换的值和1000比较
- Wscript.Echo "电信:只有"&Temp&" Kbytes/sec" ' Wscript.Echo是输出一个窗口,&是字符串连接符,
- end if '结束条件语句
- 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://bbs.bathome.net/) |
Powered by Discuz! 7.2 |