我需要知道如何通过在vbs中使用ping命令来获得平均回复时间。
我发现仅执行此命令就可以获取所有ping输出,但是也许我可以获取我的时间数据并在不使用字符串处理的情况下计算变量。
Set objExec = objShell.Exec("ping -n 2 -w 1000 " & strTarget)
strPingResults = LCase(objExec.StdOut.ReadAll)
我需要知道如何通过在vbs中使用ping命令来获得平均回复时间。
我发现仅执行此命令就可以获取所有ping输出,但是也许我可以获取我的时间数据并在不使用字符串处理的情况下计算变量。
Set objExec = objShell.Exec("ping -n 2 -w 1000 " & strTarget)
strPingResults = LCase(objExec.StdOut.ReadAll)
我不建议先掏空ping.exe
然后解析输出。改用WMI:
target = 'somecomputer'
n = 2
Set wmi = GetObject("winmgmts://./root/cimv2")
qry = "SELECT * FROM Win32_PingStatus WHERE address='" & target & "'"
rspTime = 0
cnt = 0
For i = 1 To n
For Each pingStatus In wmi.ExecQuery(qry)
If Not IsNull(pingStatus.StatusCode) Or pingStatus.StatusCode = 0 Then
rspTime = rspTime + pingStatus.ResponseTime
cnt = cnt + 1
End If
Next
Next
If cnt > 0 Then
WScript.Echo "Average response time: " & (rspTime / cnt)
Else
WScript.Echo "Host unreachable"
End If