batch-file - 批处理文件过滤 ping 结果并附加 .csv
问题描述
我制作了一个简单的 For /L 循环脚本,以 x 次结束,其中包含一个嵌套循环,同时过滤 ping 结果。
@echo off
setlocal enableextensions enabledelayedexpansion
for /L %%D in (1,1, x times) do (
for /f "delims=" %%A in ('ping -n 2 -l 64 192.168.0.1 ^|findstr /c:"Packets" /c:"Minimum"') Do
(CALL SET var=%%var%% %%A)
)
echo !var! >> pingresults.txt
endlocal
但是,此代码将结果生成为一行。
Packets: Sent = 2, Received = 2, Lost = 0 (0 loss), Minimum = 1ms, Maximum = 3ms, Average = 2ms Packets: Sent = 2, Received = 2, Lost = 0 (0 loss), Minimum = 1ms, Maximum = 2ms, Average = 1ms Packets: Sent = 2, Received = 2, Lost = 0 (0 loss), Minimum = 2ms, Maximum = 3ms, Average = 2ms Packets: Sent = 2, Received = 2, Lost = 0 (0 loss), Minimum = 1ms, Maximum = 3ms, Average = 2ms Packets: Sent = 2, Received = 2, Lost = 0 (0 loss), Minimum = 2ms, Maximum = 7ms, Average = 4ms
谁能帮我将这一行结果解析为多行?
此外,如果有人可以帮助将结果转换并附加到 .csv 格式如下:
packetsent,packetrcv,packetloss,minlatency,maxlatency,avglatency,datetime
2,2,0,2ms,7ms,4ms,datetimehere
2,2,0,1ms,2ms,4ms,datetimehere
解决方案
我的项目需要重复 ping 120 个循环,每个循环有 50 个数据包计数。
顺便说一句,我找到了解决方案:
@echo off
setlocal enabledelayedexpansion
echo This Ping Test expected to be finished within 1.6 hours...
echo packetsent,packetreceived,packetloss,minlatency,maxlatency,avglatency,timestamp > ping.csv
(for /l %%A in (1,1,120) do (
for /f "tokens=2,4,6 delims=,=(" %%i in ('ping 192.168.0.1 -n 50 -l 64 ^| findstr "Packet Minimum"') do (
set all=!all!, %%i,%%j,%%k
set all=!all: =!
)
echo !all:~1!,!date! !time!
set "all="
) ) >> ping.csv
Echo ***Ping Test completed.***
pause
cmd 上的输出应如下所示:
C:\>ping.bat
This Ping Test expected to be finished within 1.6 hours...
2,2,0,25ms,26ms,25ms,Thu 10/06/2021 3:55:23.68
2,2,0,25ms,25ms,25ms,Thu 10/06/2021 3:55:24.79
2,2,0,24ms,25ms,24ms,Thu 10/06/2021 3:55:25.94
2,2,0,25ms,49ms,37ms,Thu 10/06/2021 3:55:27.05
2,2,0,25ms,26ms,25ms,Thu 10/06/2021 3:55:28.15
..........
***Ping Test completed.***
Press any key to continue . . .
抱歉,英语不是我的母语 :)
推荐阅读
- jquery - Bootstrap 的工具提示需要 Popper.js
- debugging - 错误:预期标识符或 '(' for (int i = 0; i < n; i++)
- c++ - “时间”库形式 Arduino 显示不正确的值
- react-native - CocoaPods 在 react-native-template-typescript 上失败:url_for_request:未初始化的常量 GhInspector::Sidekick::ERB (NameError)
- swift - UIImage.pngData() - 结构体还是闭包?
- dolphindb - DolphinDB 数据库笔记本中消失的变量
- c# - 任何 JSON 字符串转换为 C# 对象而不定义 pojo
- python - 我在最近一次通话中遇到了一些错误
- sapui5 - 如何在 SAP Web IDE 应用程序中集成 Autodesk forge?
- slack - 哪个 slack 令牌用于我的 slack bot 应用程序