String auslesen in Batchdatei.
Hallo,
ich bin neu hier und gerade bei meiner ersten etwas umfangreicherin Batchdatei bei.
Ich brauche eine Batchdatei die alle 10sek. einen Ping an z.b. google.de macht und die Zeit ausliest.
Wenn die verbindungszeit größer als 1000ms ist soll, Zeit und Datum + Verbindungszeit in eine TXT geschrieben werden.
Ich habe es jetzt mit find sting probiert aber leider nicht hinbekommen.
Hat jemand eine Idee?
Das ist mein aktueller Quelltext.
Ping alle 10sek. funktioniert und er schreibt in eine LOG auch Computernamen usw.
Allerdings schreibt er da wo die ZEit stehen sollte, "ungültiger parameter".
@set LOG=%COMPUTERNAME%. log
@echo. >%LOG%
rem @echo. >>%LOG%
@echo Daten des Rechners %COMPUTERNAME% >>%LOG%
@echo. >>%LOG%
@echo Datum : %DATE% >>%LOG%
@echo Zeit : %TIME% >>%LOG%
@echo Computername : %COMPUTERNAME% >>%LOG%
@echo Aktueller User : %USERNAME% >>%LOG%
ping 223.254.253.37 /n 1 find string /i/C:"TTL" >>%LOG%
ping /n 11 localhost >nul
ich bin neu hier und gerade bei meiner ersten etwas umfangreicherin Batchdatei bei.
Ich brauche eine Batchdatei die alle 10sek. einen Ping an z.b. google.de macht und die Zeit ausliest.
Wenn die verbindungszeit größer als 1000ms ist soll, Zeit und Datum + Verbindungszeit in eine TXT geschrieben werden.
Ich habe es jetzt mit find sting probiert aber leider nicht hinbekommen.
Hat jemand eine Idee?
Das ist mein aktueller Quelltext.
Ping alle 10sek. funktioniert und er schreibt in eine LOG auch Computernamen usw.
Allerdings schreibt er da wo die ZEit stehen sollte, "ungültiger parameter".
@set LOG=%COMPUTERNAME%. log
@echo. >%LOG%
rem @echo. >>%LOG%
@echo Daten des Rechners %COMPUTERNAME% >>%LOG%
@echo. >>%LOG%
@echo Datum : %DATE% >>%LOG%
@echo Zeit : %TIME% >>%LOG%
@echo Computername : %COMPUTERNAME% >>%LOG%
@echo Aktueller User : %USERNAME% >>%LOG%
ping 223.254.253.37 /n 1 find string /i/C:"TTL" >>%LOG%
ping /n 11 localhost >nul
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 175925
Url: https://administrator.de/contentid/175925
Ausgedruckt am: 24.11.2024 um 19:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo dicker2503 und willkommen im Forum!
Die Zeit könntest Du so in eine Variable bekommen:
Mit der "
anhand der Trennzeichen "m" (Groß-/Kleinschreibung wird nicht berücksichtigt) und Leerzeichen in die "Tokens"
zerlegt.
Wenn Du den Teil in der Klammer betrachtest (wobei das "^" nur wegen der Verwendung in der Schleife erforderlich ist), solltest Du auch feststellen können, weshalb Du in Deinem Batch die genannte Fehlermeldung erhältst ...
Grüße
bastla
[Edit] Fehlendes % nachgetragen [/Edit]
Die Zeit könntest Du so in eine Variable bekommen:
for /f "tokens=4 delims=m " %%i in ('ping 223.254.253.37 /n 1^|findstr /c:"Minimum ="') do set /a Zeit=%%i
if %Zeit% geq 1000 echo langsam
for
"-Schleife wird die Ausgabe der Art Minimum = 53ms, Maximum = 53ms, Mittelwert = 53ms
- ini
- u
- =
- 53
- s,
- axi
zerlegt.
Wenn Du den Teil in der Klammer betrachtest (wobei das "^" nur wegen der Verwendung in der Schleife erforderlich ist), solltest Du auch feststellen können, weshalb Du in Deinem Batch die genannte Fehlermeldung erhältst ...
Grüße
bastla
[Edit] Fehlendes % nachgetragen [/Edit]
Aloha bastla,
und wenn man jetzt noch das fehlende Prozentzeichen bei
... ich persönlich hätte auch hier auf die Suchfunktion verwiesen, ähnliches gab es vor einigen Wochen erst.
greetz André
P.S.: @TE schau dir bitte beim nächsten Mal das lustige, rot markierte Wort Formatierungshilfe an, dort gibt es gar wunderbare ##blue|##-Tags
und wenn man jetzt noch das fehlende Prozentzeichen bei
%i
hinzufügt, klappt das auch mit dem Nachbarn :P... ich persönlich hätte auch hier auf die Suchfunktion verwiesen, ähnliches gab es vor einigen Wochen erst.
greetz André
P.S.: @TE schau dir bitte beim nächsten Mal das lustige, rot markierte Wort Formatierungshilfe an, dort gibt es gar wunderbare ##blue|##-Tags
@skye
Danke für den Hinweis - hab's oben geändert ...
Grüße
bastla
P.S.: Weil Du gerne auf die SuFu verweist: Mit welchen Begriffen findest du den genannten Beitrag?
Danke für den Hinweis - hab's oben geändert ...
Grüße
bastla
P.S.: Weil Du gerne auf die SuFu verweist: Mit welchen Begriffen findest du den genannten Beitrag?
Zitat von @bastla:
P.S.: Weil Du gerne auf die SuFu verweist: Mit welchen Begriffen findest du den genannten Beitrag?
P.S.: Weil Du gerne auf die SuFu verweist: Mit welchen Begriffen findest du den genannten Beitrag?
Alle dazu hilfreichen threads finde ich mit den Suchbegriffen findstr ttl ... in Sachen batch, wenn es etwas spezifischer ist, würde ich nie Nach Wörtern aus Überschriften suchen ... bei der Überschrift hier würde man auch nicht auf das Thema stoßen ^__^
@skye
... abgesehen davon, dass es eigentlich um das Auslesen des Zeit-Wertes ging ...
Grüße
bastla
Alle dazu hilfreichen threads finde ich mit den Suchbegriffen findstr ttl
Wie Du gesehen hast, war schon "findstr" das Problem ... ... abgesehen davon, dass es eigentlich um das Auslesen des Zeit-Wertes ging ...
Grüße
bastla
Hallo dicker2503!
Das Ganze unter XP SP3 ...
Das Ergebnis Deines Ansatzes sieht etwa so aus:
und lässt sich dadurch nicht ganz so gut mit 1000 vergleichen ...
Grüße
bastla
P.S.: Den nicht unbunten Hinweis von Skye auf die Formatierungsmöglichkeit für Code hast Du aber schon bemerkt?
die beiden Zeilen funktionieren nicht =(
... sollte vielleicht genauer heißen "... funktionieren bei mir nicht" :D:>type Zeitermittlung.cmd
setlocal
set homeserver=74.125.39.147
for /f "tokens=4 delims=m " %%i in ('ping %homeserver% /n 1^|findstr /c:"Minimum
="') do set /a Zeit=%%i
if %Zeit% geq 1000 echo langsam
echo %Zeit%
D:>Zeitermittlung
D:>setlocal
D:>set homeserver=74.125.39.147
D:>for /F "tokens=4 delims=m " %i in ('ping 74.125.39.147 /n 1|findstr /c:"
Minimum ="') do set /a Zeit=%i
D:>set /a Zeit=32
D:>if 32 GEQ 1000 echo langsam
D:>echo 32
32
Das Ergebnis Deines Ansatzes sieht etwa so aus:
Zeit=33ms
Grüße
bastla
P.S.: Den nicht unbunten Hinweis von Skye auf die Formatierungsmöglichkeit für Code hast Du aber schon bemerkt?