Ping Ausgabe in Variable schreiben und diese später mit find durchsuchen
Hallo Profis
Ich suchte und fand einiges, aber nichts davon half mir.
Ich pinge einen Rechner an. Das Ergebniss "Antwort von xx.xx.xx.xx: Bytes=32 Zeit=2ms TTL=124" soll dabei in einer Variablen landen. Diese will ich später nach "TTL=" mit find durchsuchen.
Ich kriege die Syntax aber nicht zusammen.
Ablauf:
Ping host -n2 -w 4000 >var (irgendwie in eine Variable schreiben) | find "TTL=" in var (irgendwie in der Variablen suchen) && goto :next-step
Es geht natürlich auch ohne Variable, aber dann sehe ich die Ping Ausgabe in der Dos-Box, was aber nicht sein soll.
Wenn ich Ping in >nul schicke, sehe ich die Ausgabe zwar nicht, kann es aber auch nicht mehr durchsuchen.
Bin für jede Hilfe dankbar.
Grüße
Ich suchte und fand einiges, aber nichts davon half mir.
Ich pinge einen Rechner an. Das Ergebniss "Antwort von xx.xx.xx.xx: Bytes=32 Zeit=2ms TTL=124" soll dabei in einer Variablen landen. Diese will ich später nach "TTL=" mit find durchsuchen.
Ich kriege die Syntax aber nicht zusammen.
Ablauf:
Ping host -n2 -w 4000 >var (irgendwie in eine Variable schreiben) | find "TTL=" in var (irgendwie in der Variablen suchen) && goto :next-step
Es geht natürlich auch ohne Variable, aber dann sehe ich die Ping Ausgabe in der Dos-Box, was aber nicht sein soll.
Wenn ich Ping in >nul schicke, sehe ich die Ausgabe zwar nicht, kann es aber auch nicht mehr durchsuchen.
Bin für jede Hilfe dankbar.
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 196444
Url: https://administrator.de/contentid/196444
Ausgedruckt am: 07.11.2024 um 22:11 Uhr
5 Kommentare
Neuester Kommentar
moin Bastla,
Prinzipell ein guter halberAnsatz, aber nein ich bin weder ossi noch ein Schwaebli
das grützt doch in die Greife - obwohl es auf den ersten Blick ......nix anzeigt, wie versprochen, aber warum?
da fehlt ein paar Leherzeichen
Um ganze kürzer (eigentlich ist das doch dein Part) zu machen:
Wobei -n 2 und ein echo / oder Set... das könnte eine lange Geburt werden.
Gruß zurück und frohes Neues Jahr
Zitat von @bastla:
Hallo Nollosch!
Wenn ich Ping in >nul schicke, sehe ich die Ausgabe zwar nicht, kann es aber auch nicht mehr durchsuchen.
Dann schicke doch nur das Ergebnis des "
Hallo Nollosch!
Wenn ich Ping in >nul schicke, sehe ich die Ausgabe zwar nicht, kann es aber auch nicht mehr durchsuchen.
Dann schicke doch nur das Ergebnis des "
find
" ins Nirwana:Ping host -n2 -w 4000|find "TTL=">nul && goto :next-step
Prinzipell ein guter halberAnsatz, aber nein ich bin weder ossi noch ein Schwaebli
das grützt doch in die Greife - obwohl es auf den ersten Blick ......nix anzeigt, wie versprochen, aber warum?
C:\>ping localhost -n2 -w4000|find "TTL"
C:\>
C:\>ping localhost -n2 -w4000
Ungültiger Wert für die Option -n2. Der Gültige Bereich liegt zwischen 1 und 429
4967295.
C:\>
Um ganze kürzer (eigentlich ist das doch dein Part) zu machen:
C:\>for /f "tokens=6" %a in ('ping localhost -n 2 -w 4000^|find "TTL"') do echo
%a
:\>echo TTL=128
TTL=128
:\>echo TTL=128
TTL=128
C:\>
Wobei -n 2 und ein echo / oder Set... das könnte eine lange Geburt werden.
Grüße
bastla
bastla
Gruß zurück und frohes Neues Jahr
Hallo Nollosch!
bzw einen Wert aus einer einzelnen Zeile "mitnehmen", zB
Grüße
bastla
Kann man so eine Ausgabe denn in eine Variable legen um diese später dann weiterzuverwenden (ohne erst in eine .txt zu schreiben o.ä.)?
Da die Ausgabe ja mehrzeilig ist, unmittelbar nicht - Du könntest aber natürlich das Ergebnis in einer Variablen festhaltenset "OK="
ping %host% -n 2 -w 4000|find "TTL=">nul && set "OK=true"
if defined OK echo %host% hat geantwortet
@echo off & setlocal
for /f "tokens=11 delims=( " %%i in ('ping %host%^|findstr "Verlust"') do set "Verl=%%i"
echo %Verl%
::Prozentzeichen entfernen
setlocal enabledelayedexpansion
set "Verl=!Verl:%%=!"
endlocal & set "Verl=%Verl%"
echo %Verl%
bastla