今天遇到这个需求了,因为有部分电脑网络偶尔出现问题,又不好排查,所以搞了一个这个脚本,感谢各位前辈,善加改进已经可用。
效果如下哦:
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
可复制到文本改成 vbs 后缀即可。使用方法:把脚本放到指定盘符或者目录。使用如下命令:
cscript D:\ping1.vbs www.baidu.com -t >> D:\baidu.txt
然后找到对应文件即可,是一个排查网络稳定性的好方法。
@echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin REM echo 日期:%date% set stryear=%date:~0,4%&set strmonth=%date:~5,2%& set strday=%date:~8,2% echo 时间:%time% set strhh=%time:~0,2%& set strmm=%time:~3,2%&set strss=%time:~6,2% set strdatetime = %stryear%%strmonth%%strday%%strhh%%strmm%%strss% cscript D:\ping.vbs www.baidu.com -t >> D:\baidu--%stryear%%strmonth%%strday%%strhh%%strmm%%strss%.txt
运行这个脚本即可实现没有 cmd 窗口后台运行,亲测。如有需求可添加启动项或者计划任务里面搞一下,这样不用手动去触发,试试监控输出日志信息
(自启动项里我这里添加的是脚本的快捷方式,不然重启后脚本任务报错,快捷方式则不会)。