Ping mit Zeitstempel ausgeben
Hallo alle miteinander,
ich möchte folgendes realisieren, und selbst komme ich nicht weiter. Ein normaler Ping schaut ja ca. so aus:
Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
Ich möchte eine Batch-Datei schreiben die mir den Ping als Log-File ausgibt, und das 12 Stunden lang dauerping, im endeffekt sollte das dann so aussehen:
12:11:03 Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
12:11:13 Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
12:11:23 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
12:11:33 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
12:11:43 Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
12:11:53 Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
12:12:03 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
12:12:13 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
12:12:23 Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
12:12:33 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
12:12:33 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
usw.... Ist soetwas möglich???
Vielen Dank!
ich möchte folgendes realisieren, und selbst komme ich nicht weiter. Ein normaler Ping schaut ja ca. so aus:
Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
Ich möchte eine Batch-Datei schreiben die mir den Ping als Log-File ausgibt, und das 12 Stunden lang dauerping, im endeffekt sollte das dann so aussehen:
12:11:03 Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
12:11:13 Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
12:11:23 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
12:11:33 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
12:11:43 Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
12:11:53 Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
12:12:03 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
12:12:13 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
12:12:23 Antwort von 192.168.222.1: Bytes=32 Zeit=1ms TTL=128
12:12:33 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
12:12:33 Antwort von 192.168.222.1: Bytes=32 Zeit<1ms TTL=128
usw.... Ist soetwas möglich???
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 59814
Url: https://administrator.de/contentid/59814
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
8 Kommentare
Neuester Kommentar
Ja und du benötigst nichtmal ein Script
http://www.cfos.de/ping/ping.htm
löst dein Problem sofort mit der Option -T
http://www.cfos.de/ping/ping.htm
löst dein Problem sofort mit der Option -T
Moin crazyhoesl,
nicht, dass mich vor einer Antwort drücken wollte, aber...
WTF macht das für einen Sinn???
Wenn Du Dir aus der gewünschten Logdatei eine Statistik erzeugen willst, dann schau Dir bitte vorher an, ob nicht ein "ping -t" dasselbe Ergebnis liefert könnte.
Den mitgelieferten M$-Ping kannst Du auch mit STRG-UNTBR abbrechen und bekommst dann eine Statistik angezeigt.
Was ist denn Dein Ziel (nachdem die Logdatei da ist)?
Gruß
Biber
nicht, dass mich vor einer Antwort drücken wollte, aber...
WTF macht das für einen Sinn???
Wenn Du Dir aus der gewünschten Logdatei eine Statistik erzeugen willst, dann schau Dir bitte vorher an, ob nicht ein "ping -t" dasselbe Ergebnis liefert könnte.
Den mitgelieferten M$-Ping kannst Du auch mit STRG-UNTBR abbrechen und bekommst dann eine Statistik angezeigt.
Was ist denn Dein Ziel (nachdem die Logdatei da ist)?
Gruß
Biber
Moin cratyhoesl,
dann mach da nicht so viel Heckmeck drum.
Vorlage vom CMD-Prompt:
Wenn denn ein Batch sein soll:
.. und wenn der immer alles umleiten soll, dann noch ein >>\whereever\Ping_%date%.Log anhängen.
Gruß
Biber
dann mach da nicht so viel Heckmeck drum.
Vorlage vom CMD-Prompt:
(=15:51:32 D:\temp=)
>for /l %a in (0) do @for /f "Tokens= 3,*" %i in ('ping -n 1 localhost^|find "Antwort"') do @echo !Time! %j
15:51:49,90 Bytes=32 Zeit=18ms TTL=128
15:51:50,02 Bytes=32 Zeit<1ms TTL=128
15:51:50,13 Bytes=32 Zeit<1ms TTL=128
15:51:50,24 Bytes=32 Zeit<1ms TTL=128
15:51:50,35 Bytes=32 Zeit<1ms TTL=128
15:51:50,46 Bytes=32 Zeit<1ms TTL=128
15:51:50,57 Bytes=32 Zeit<1ms TTL=128
15:51:50,68 Bytes=32 Zeit<1ms TTL=128
15:51:50,79 Bytes=32 Zeit<1ms TTL=128
15:51:50,89 Bytes=32 Zeit<1ms TTL=128
15:51:51,00 Bytes=32 Zeit<1ms TTL=128
15:51:51,11 Bytes=32 Zeit<1ms TTL=128
15:51:51,22 Bytes=32 Zeit<1ms TTL=128
15:51:51,33 Bytes=32 Zeit<1ms TTL=128
(=15:51:51 D:\temp=)
Wenn denn ein Batch sein soll:
::---------snipp DauerPing.bat
@Echo off & Setlocal EnableDelayedExpansion
for /l %%a in (0) do @for /f "Tokens= 3,*" %%i in ('ping -n 1 localhost^|find "Antwort"') do @echo !Time! %%j
.. und wenn der immer alles umleiten soll, dann noch ein >>\whereever\Ping_%date%.Log anhängen.
Gruß
Biber
Moin crazyhoesl,
Das soll kein Vi$ta-Feature bleiben..
oder als Batch entsprechend:
oder lesbarer
Das "For /L %%a in (0) Do" ist ein so genanntes Biber-Special und bedeutet so viel wie "DO WHILE TRUE/ Mache endlos".
Den Rest musst Du von innen nach außen lesen und ggf. einzeln vorher ausprobieren am CMD-Prompt.
Eine einzelne Anweisung: 'ping -n 1 localhost^|find "Antwort"' kannst Du an Prompt testen als ping -n 1 localhost|find "Antwort"
Die FOR /F-Anweisung davor filtert dann das 5. Token, die "<1ms" heraus.
Und mit !Time! hole ich die jeweils aktuelle Zeit (%time%) auf den Schirm.
Thats all. Isset gelöst für Dich?
Grüße
Biber
Das soll kein Vi$ta-Feature bleiben..
>for /l %a in (0) do @for /f "Tokens=5" %i in ('ping -n 1 localhost^|find "Antwort"') do @echo !Time! %i
16:07:34,78 Zeit<1ms
16:07:34,89 Zeit<1ms
16:07:35,00 Zeit<1ms
16:07:35,11 Zeit<1ms
16:07:35,23 Zeit<1ms
16:07:35,34 Zeit<1ms
16:07:35,45 Zeit<1ms
..
oder als Batch entsprechend:
@Echo off & setlocal EnableDelayedExpansion
for /L %%a in (0) do for /f "Tokens=5" %i in ('ping -n 1 localhost^|find "Antwort"') do echo !Time! %%i
oder lesbarer
@Echo off & setlocal EnableDelayedExpansion
for /L %%a in (0) do (
for /f "Tokens=5" %i in ('ping -n 1 localhost^|find "Antwort"') do echo !Time! %%i
)
Das "For /L %%a in (0) Do" ist ein so genanntes Biber-Special und bedeutet so viel wie "DO WHILE TRUE/ Mache endlos".
Den Rest musst Du von innen nach außen lesen und ggf. einzeln vorher ausprobieren am CMD-Prompt.
Eine einzelne Anweisung: 'ping -n 1 localhost^|find "Antwort"' kannst Du an Prompt testen als ping -n 1 localhost|find "Antwort"
Die FOR /F-Anweisung davor filtert dann das 5. Token, die "<1ms" heraus.
Und mit !Time! hole ich die jeweils aktuelle Zeit (%time%) auf den Schirm.
Thats all. Isset gelöst für Dich?
Grüße
Biber
aber man ist ja schließlich noch jung
Na ja... als ich in Deinem Alter war, haben meine Bätche schon die ersten Fernsehsatelliten gesteuert... <grinz>Nein, Spaß beiseite... es ist auch bei mir mehr Übungssache und sicher keine Genialität.
Also normale Transpiration statt Inspiration.
Ich schließe den Beitrag mal.
Schönen Feierabend.
Biber
[Edit] Noch ein Nachtrag:
Du kannst natürlich auch ein "sleep" einbauen. Würde ich jedenfalls auch, genau wie Du oben schon geschrieben hast.
Demo am Prompt:
>for /l %a in (0) do @for /f "Tokens=5" %i in ('sleep 6 ^& ping -n 1 localhost^|find "Antwort"') do@echo !Time! %i
16:51:13,07 Zeit<1ms
16:51:19,22 Zeit<1ms
16:51:25,33 Zeit<1ms
^C
[/Edit]