windows系统cmd中给ping加上时间戳

博主:云顶天云顶天 6个月前 ( 05-29 ) 20439 8条评论
摘要: 今天晚上机房互联网出口的运营商做大规模网络割接,说是只会闪断两次,但是对他们还是不放心,也没精力一直守着看网络状态。想着从外面租用的服务器用ping来监控闪断次数和持续时间,结果那...

今天晚上机房互联网出口的运营商做大规模网络割接,说是只会闪断两次,但是对他们还是不放心,也没精力一直守着看网络状态。

想着从外面租用的服务器用ping来监控闪断次数和持续时间,结果那破服务器装个xshell都卡成狗了~cmd的ping又默认不带时间戳,怎么办~

于是找了一段脚本,用来给windows cmd的ping加上时间戳,以便割接结束后核对具体的闪断情况。

首先创建一个pingtime.vbs文件,代码如下:

Dim args, flag, unsuccOut  
args=""  
otherout=""  
flag=0  
  
  
If WScript.Arguments.count = 0 Then  
WScript.Echo "Usage: cscript tping.vbs [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]"  
WScript.Echo "                         [-s count] [[-j host-list] | [-k host-list]]"  
WScript.Echo "                         [-r count] [-w timeout] destination-list"  
wscript.quit  
End if  
  
  
For i=0 to WScript.Arguments.count - 1  
args=args & " " & WScript.Arguments(i)  
Next  
  
  
Set shell = WScript.CreateObject("WScript.Shell")  
Set re=New RegExp  
re.Pattern="^Reply|^Request|^来自|^请求"  
  
  
Set myping=shell.Exec("ping" & args)  
  
  
while Not myping.StdOut.AtEndOfStream  
   strLine=myping.StdOut.ReadLine()  
'WScript.Echo  "原数据" & chr(9) & strLine  
   r=re.Test(strLine)  
   If r Then  
WScript.Echo date & " "& time & chr(9) & strLine  
flag=1  
   Else  
unsuccOut=unsuccOut & strLine  
   End if  
Wend  
  
  
if flag = 0 then  
WScript.Echo unsuccOut  
end if

把pingtime.vbs放到c盘根目录,然后在cmd中进入到c:运行以下命令:

cscript ping.vbs x.x.x.x -t >ping20190528.txt

参数说明:
-t 一直ping

>ping20190528.txt 把ping的结果以txt文本的形式保存到当前目录下

如果需要指定ping包的大小和超时设置可以使用下面的参数

-l 封包大小
-w 超时时间

例如:

cscript ping.vbs x.x.x.x -t -l 1000 -w 5000 >ping20190528.txt

注意cmd命令行窗口需要用管理员权限打开,win10直接在命令行工具上右键选择管理员权限打开,win2003右键运行方式,并将“以受限制的访问运行此程序”选项取消。

测试结果,割接第一次闪断丢了3个包,还好还好~

浮窗式百度分享代码,请勿使用文字或图标
赞(1

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏