crazyhoesl
Goto Top

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!

Content-ID: 59814

Url: https://administrator.de/contentid/59814

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

aqui
aqui 25.05.2007 um 12:41:27 Uhr
Goto Top
Ja und du benötigst nichtmal ein Script face-wink

http://www.cfos.de/ping/ping.htm

löst dein Problem sofort mit der Option -T face-wink
Biber
Biber 26.05.2007 um 11:51:47 Uhr
Goto Top
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
crazyhoesl
crazyhoesl 30.05.2007 um 08:29:34 Uhr
Goto Top
Ich möchte auf einem Server mal einen Tag lang die Ping-Zeiten auf einen anderen Server messen. Das das mit ping -t funktioniert ist mir klar, allerdings möchte ich nicht 1 Tag lang davor sitzten und dem Ping-Pong zusehen, sondern mir am Tag danach mir das Ergebnis durch ein Logfile ansehen. Das Problem ist nur das mir z.b. "ping -t>C:\logdatei.log" keinen Zeitstempel zu jedem ping mitliefert.

Ich hab das jetzt mal so ungefähr so gelöst: (kein komplettes Script!)

:loop
ping %pingadresse% -n 1 > C:\temp.log

@echo %date%, %time% >> C:\logdatei.log

type C:\temp.log|find /i "Antwort" >> C:\logdatei.log

del C:\temp.log
goto loop

ist nicht besonders hübsch wegen der temp - datei... Und am besten sollte man noch einen sleep befehl reinsetzten, sonst arbeitet der server bisschen arg viel face-wink

leider bekomm ich damit Zeitstempel und Ping-Antwort nicht in eine Zeile, aber im Grunde hat es seinen Zweck erfüllt.

Vielen Dank an aqui, das Prog ist net schlecht, aber mir gefiel irgendwie die Ping-Ausgabe nicht so wirklich face-wink

Vielen Dank,

crazyhoesl
Biber
Biber 30.05.2007 um 15:57:38 Uhr
Goto Top
Moin cratyhoesl,

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
crazyhoesl
crazyhoesl 30.05.2007 um 16:05:14 Uhr
Goto Top
äähh. ja.

So ziemlich genau das soll es sein. Schade das ich überhaupt keinen Plan hab was hinter diesem Befehl so wirklich steckt...

Trotzdem allerherzlichsten und besten Dank! Das ist absolut perfekt.
Mit Vista wirds noch perfekter angezeit:

16:03:56.16 Zeit<1ms

ohne Bytes und TimeToLive
Biber
Biber 30.05.2007 um 16:15:58 Uhr
Goto Top
Moin crazyhoesl,

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
crazyhoesl
crazyhoesl 30.05.2007 um 16:21:30 Uhr
Goto Top
AH, verstehe...

also zumindest von der Logik her.. selbst würd ich das noch nicht zusammenbasteln können, aber man ist ja schließlich noch jung face-wink

Nochmals vielen Dank
Biber
Biber 30.05.2007 um 16:47:03 Uhr
Goto Top
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]