VBS脚本
                                   -----功能是监控网络的单线程流量
       写个脚本文件,功能是用ab命令获取单线程流量,当小于一定数值时,发出警告信息。
 
dim obj  
set obj=createobject("wscript.shell")   \\定义一个DOS控件
obj.run "command /c ab -k -n 3 -c 1 http://www.bjnet.net.cn/p_w_picpaths/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()函数。