Beispiel meiner Protokolldatei mit Pings auf verschiedenen IP-Adressen.wie bestimmte Zeilen aus Text in einen anderen Text mithilfe von Stapel extrahiert werden.
Pinging 10.62.36.161 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 10.62.36.161:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
=================================================
Pinging src.g03.yahoodns.net [98.137.236.150] with 32 bytes of data:
Reply from 98.137.236.150: bytes=32 time=203ms TTL=43
Reply from 98.137.236.150: bytes=32 time=204ms TTL=45
Reply from 98.137.236.150: bytes=32 time=192ms TTL=43
Reply from 98.137.236.150: bytes=32 time=211ms TTL=43
Ping statistics for 98.137.236.150:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 192ms, Maximum = 211ms, Average = 202ms
Ich möchte mit Request timed out
einschließlich der IP-Adresse, alle Linien bekommen ich pinged. Drucken Sie dann die Zeilen in einer anderen Datei aus.
Irgendeine Idee, wie man dazu kommt?
gibt es einen Code, den ich gefunden habe. Das einzige Problem war, dass die Ergebnisse 3 zusätzliche Linien zeigten. Code:
@echo off
set log=C:\Users\"name"\Desktop\log.txt
set test=C:\Users\"name"\Desktop\test.txt
setlocal EnableDelayedExpansion
set numbers=
for /F "delims=:" %%a in ('findstr /I /N /C:"Request" %log%') do (
set /A before=%%a-1, after=%%a+1
set "numbers=!numbers!!before!: !after!: "
)
(for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %log% ^| findstr /B "%numbers%"') do echo %%b) > %test%
pause
die Ergebnisse Ich habe:
Pinging 10.62.36.161 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
ECHO is off.
Reply from 8.8.8.8: bytes=32 time=6ms TTL=49
Reply from 8.8.8.8: bytes=32 time=5ms TTL=49
überall ich falsch gemacht habe?
Warum sind Sie mit '% log%' durch eine 'for' Schleife (du bist nicht, übrigens; Ihnen fehlen die Klammern um '% log%')? Sie müssen das überhaupt nicht tun. Nur 'findstr/C:" Anfrage "% log% >>% test%' – SomethingDark
wahrscheinlich viel einfacher zu parsen, die "Ping" -Ausgabe anstelle einer Logdatei. Siehe zum Beispiel [diese Antwort] (http://stackoverflow.com/a/24965777/2152082) – Stephan
@SomethingDark danke für Ihre Antwort. Ich habe den Code ausgeführt.es gab mir nur die Zeilen, die das Wort enthalten. Ich brauche auch die IP-Adresse der Leitung. Danke fürs Helfen! –