ping检测稳定性脚本
@echo off
set filePath=D:/pingRecord.csv
set ping_url=www.baidu.com
set sleep_times=5
:top
echo starting test network...
set times=0
for /f "skip=2 delims=;" %%i in ('ping %ping_url% -n 1') do (
set result=%%i
goto next
)
:next
echo %date% %time% , %result%>>%filePath%
ping -n %sleep_times% 127.1 >nul
goto top
将www.baidu.com换成你想测试的域名,运行脚本,就会隔一段时间发送一个ping,并记录结果到D:/pingRecord.csv中,如下图。
取命令结果的指定行方法
由于ping命令从第三行开始才有我们关注的信息(如下),所以我们需要直接取第三行。
>ping www.baidu.com -n 1
正在 Ping www.a.shifen.com [163.177.151.109] 具有 32 字节的数据:
来自 163.177.151.109 的回复: 字节=32 时间=7ms TTL=49
163.177.151.109 的 Ping 统计信息:
数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 7ms,最长 = 7ms,平均 = 7ms
我们用到的是for /f
命令,该命令可以行遍历。
for /f "skip=2 delims=;" %%i in ('ping %ping_url% -n 1') do (
set result=%%i
goto next
)
:next
解析:
skip=2
:跳过前面两行。因为我们需要第三行;delims=;
:制定分隔符为;
,**默认是空格和TAB。**所以在这里不可以删除,写;
仅是因为结果没有,可以不分割。如果需要分割,可以配合tokens=
进行选取需要那一个部分;goto next
与:next
:用于在执行一次do里面的内容后跳出循环。否则for会一直遍历,导致结果是最后一行的,而不是我们所需的第三行。
将变量内容追加写入txt文件方法
echo %result%>>%filePath%
解析:
result
是变量filePath
是文件路径
按照该格式即可将变量的内容写入到路径对应文件的末尾。