Batch Ping ausgabe sortieren oder trennen
Hey,
also ich habe eine .batch erstellt mit diesem befehlen :
und die ausgabe sieht so aus :
nun ist meine frage ob ich die Ausgabe sortieren oder anders trennen kann das meine Ausgabe so aussieht :
denn ich möchte die Daten in einer Tabelle importieren, die so aussehe:
Datum | IP | Größe | Ping/ms | TTL | Packet Gesendet, Empfangen | Verloren (Verlust %) |
31.10.2018-21:09:59,30 | Antwort von 172.217.18.14 | Bytes=32 | Zeit=21ms | TTL=55 | Gesendet = 1 Empfangen = 1 | Verloren = 0 (0% Verlust) |
also ich habe eine .batch erstellt mit diesem befehlen :
:Start
echo %date%-%time% >>C:\log.ods
echo off
ping 172.217.18.14 -n 1 >>C:\log.ods
goto Start
und die ausgabe sieht so aus :
31.10.2018-21:09:59,30
Ping wird ausgeführt für 172.217.18.14 mit 32 Bytes Daten:
Antwort von 172.217.18.14: Bytes=32 Zeit=21ms TTL=55
Ping-Statistik für 172.217.18.14:
Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 21ms, Maximum = 21ms, Mittelwert = 21ms
31.10.2018-21:09:59,34
nun ist meine frage ob ich die Ausgabe sortieren oder anders trennen kann das meine Ausgabe so aussieht :
31.10.2018-21:09:59,30 ;Antwort von 172.217.18.14;Bytes=32;Zeit=21ms;TTL=55;Pakete: Gesendet = 1 Empfangen = 1;Verloren = 0 (0% Verlust),
denn ich möchte die Daten in einer Tabelle importieren, die so aussehe:
Datum | IP | Größe | Ping/ms | TTL | Packet Gesendet, Empfangen | Verloren (Verlust %) |
31.10.2018-21:09:59,30 | Antwort von 172.217.18.14 | Bytes=32 | Zeit=21ms | TTL=55 | Gesendet = 1 Empfangen = 1 | Verloren = 0 (0% Verlust) |
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 391344
Url: https://administrator.de/forum/batch-ping-ausgabe-sortieren-oder-trennen-391344.html
Ausgedruckt am: 22.03.2025 um 02:03 Uhr
2 Kommentare
Neuester Kommentar
Einfach die Ausgabe in FOR /F Schleifen auseinander nehmen und so wie du sie brauchst wieder zusammen bauen.
Steffen
:Start
set "l1=" &set "l2=" &set "l3="
for /f "delims=" %%i in ('ping 172.217.18.14 -n 1 ^| findstr "Antwort Pakete Verlust"') do (
if not defined l1 (
set "l1=%%i"
) else if not defined l2 (
set "l2=%%i"
) else (
set "l3=%%i"
)
)
for /f "tokens=1-6 delims=: " %%a in ("%l1%") do (
for /f "tokens=1-7* delims=, " %%g in ("%l2%") do (
for /f "tokens=1,2 delims=, " %%o in ("%l3%") do (
echo %date%-%time%;%%a %%b %%c;%%d;%%e;%%f;%%g %%h %%i %%j, %%k %%l %%m;%%n %%o %%p
)
)
)
goto Start

Ich würde da für ja gleich einen Powershell-Einzeiler hernehmen anstatt die PING-Ausgaben umständlich zu parsen, wir leben ja nicht mehr in den 80ern:
Gruß l.
Test-Connection '172.217.18.14' -Count 1 | select @{n='Datum';e={get-date -f 'G'}},Address,IPv4Address,BufferSize,ResponseTime | export-csv .\Verbindungsdaten.csv -NoType -Delimiter ";" -Encoding UTF8