今天遇到这个需求了,因为有部分电脑网络偶尔出现问题,又不好排查,所以搞了一个这个脚本,感谢各位前辈,善加改进已经可用。
效果如下哦:
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 窗口后台运行,亲测。如有需求可添加启动项或者计划任务里面搞一下,这样不用手动去触发,试试监控输出日志信息
(自启动项里我这里添加的是脚本的快捷方式,不然重启后脚本任务报错,快捷方式则不会)。