BAT脚本: ping检测网络稳定性 与 取命令结果的指定行方法 与 将变量内容追加写入txt文件方法

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

解析:

  1. skip=2:跳过前面两行。因为我们需要第三行;
  2. delims=;:制定分隔符为;,**默认是空格和TAB。**所以在这里不可以删除,写;仅是因为结果没有,可以不分割。如果需要分割,可以配合tokens=进行选取需要那一个部分;
  3. goto next:next:用于在执行一次do里面的内容后跳出循环。否则for会一直遍历,导致结果是最后一行的,而不是我们所需的第三行。

将变量内容追加写入txt文件方法

echo %result%>>%filePath%

解析:

  1. result是变量
  2. filePath是文件路径
    按照该格式即可将变量的内容写入到路径对应文件的末尾。

参考资料

bat中for /f 如何截取任意行

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值