Logfile nach bestimmten Inhalten durchsuchen und in neuer Datei speichern
Hallo zusammen,
wünsche erst mal allen ein gesundes und erfogreiches neuen Jahr 2009!
Hab da ein Problem im Bereich Logfiles auswerten und finde keine Vernünfigte Lösung dieses per Batch zu lösen.
Hoffe Ihr könnt mir hier weiterhelen.
Folgendes Problem.
Ich bekomme aus einem Script folgendes Logfile zurück und möchte dieses nach bestimmten Kriterien durchsuchen und ein neues Logifle erzeugen.
Die Problematik liegt darin, dass ich geren für jeden User die Auswerung in einer Zeilen haben möchte!
Die Logfiles sind immer gleich aufgebaut (außer länge weicht je nach Useranzal ab)
Beispiel Logfile:
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
@------------------------------------------------------------
@ Text file with Users: c:\admin\temp\dn-default-users.txt
@ Text file with User Configration: c:\admin\temp\\default-config.txt
@------------------------------------------------------------
@------------------------------------------------------------
@ Configuring CN=GIL1,OU=AND,OU=MAMBA,DC=meine,DC=Firma,DC=net
@------------------------------------------------------------
Using userPrincipalName [SipUri: sip:gil1@Firma.com]
User sip:gil1@Firma.com
Since user has NOT been previously SIP enabled, creating...
[+] User update successful.
@------------------------------------------------------------
@ Configuring CN=GIL2,OU=AND,OU=MAMBA,DC=meine,DC=Firma,DC=net
@------------------------------------------------------------
Using userPrincipalName [SipUri: sip:gil2@Firma.com]
User sip:gil2@Firma.com
Since user has NOT been previously SIP enabled, creating...
[+] User update successful.
@------------------------------------------------------------
@ Configuring CN=GIL3,OU=AND,OU=MAMBA,DC=meine,DC=Firma,DC=net
@------------------------------------------------------------
Using userPrincipalName [SipUri: sip:gil3@Firma.com]
User sip:gil3@Firma.com
Since user has NOT been previously SIP enabled, creating...
[+] User update successful.
Beispiel für gewünschte Ausgabe in neuer datei:
gil1@Firma.com creating User update successful.
gil2@Firma.com creating User update successful.
gil3@Firma.com creating User update successful.
Kann zwar das Logiles über for /f zeielenweise auslesen und auch mit findstr nach bestimmten kriterien suchen, bekomme dies aber nich in eine neue datei mit der gewünschten Ausgabe hin.
Danke im Voraus!
Gruss Snore
wünsche erst mal allen ein gesundes und erfogreiches neuen Jahr 2009!
Hab da ein Problem im Bereich Logfiles auswerten und finde keine Vernünfigte Lösung dieses per Batch zu lösen.
Hoffe Ihr könnt mir hier weiterhelen.
Folgendes Problem.
Ich bekomme aus einem Script folgendes Logfile zurück und möchte dieses nach bestimmten Kriterien durchsuchen und ein neues Logifle erzeugen.
Die Problematik liegt darin, dass ich geren für jeden User die Auswerung in einer Zeilen haben möchte!
Die Logfiles sind immer gleich aufgebaut (außer länge weicht je nach Useranzal ab)
Beispiel Logfile:
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
@------------------------------------------------------------
@ Text file with Users: c:\admin\temp\dn-default-users.txt
@ Text file with User Configration: c:\admin\temp\\default-config.txt
@------------------------------------------------------------
@------------------------------------------------------------
@ Configuring CN=GIL1,OU=AND,OU=MAMBA,DC=meine,DC=Firma,DC=net
@------------------------------------------------------------
Using userPrincipalName [SipUri: sip:gil1@Firma.com]
User sip:gil1@Firma.com
Since user has NOT been previously SIP enabled, creating...
[+] User update successful.
@------------------------------------------------------------
@ Configuring CN=GIL2,OU=AND,OU=MAMBA,DC=meine,DC=Firma,DC=net
@------------------------------------------------------------
Using userPrincipalName [SipUri: sip:gil2@Firma.com]
User sip:gil2@Firma.com
Since user has NOT been previously SIP enabled, creating...
[+] User update successful.
@------------------------------------------------------------
@ Configuring CN=GIL3,OU=AND,OU=MAMBA,DC=meine,DC=Firma,DC=net
@------------------------------------------------------------
Using userPrincipalName [SipUri: sip:gil3@Firma.com]
User sip:gil3@Firma.com
Since user has NOT been previously SIP enabled, creating...
[+] User update successful.
Beispiel für gewünschte Ausgabe in neuer datei:
gil1@Firma.com creating User update successful.
gil2@Firma.com creating User update successful.
gil3@Firma.com creating User update successful.
Kann zwar das Logiles über for /f zeielenweise auslesen und auch mit findstr nach bestimmten kriterien suchen, bekomme dies aber nich in eine neue datei mit der gewünschten Ausgabe hin.
Danke im Voraus!
Gruss Snore
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 105048
Url: https://administrator.de/forum/logfile-nach-bestimmten-inhalten-durchsuchen-und-in-neuer-datei-speichern-105048.html
Ausgedruckt am: 22.04.2025 um 06:04 Uhr
7 Kommentare
Neuester Kommentar
Versuchs mal damit:
@echo off
set "line="
FOR /F "skip=2 delims=" %%i in ('findstr "User" "Datei.txt"') do call:verarb "%%i"
goto:eof
:verarb
if "%line%" equ "" (
FOR /F "tokens=2 delims=:" %%i in ('echo %~1') do set "line=%%i"
) else (
FOR /F "tokens=1* tokens=1 delims= " %%i in ('echo %~1') do echo %line% creating %%j
set "line="
)
goto:eof
Ändere mal die erste For-Schleife (Zeile 3) so ab:
Die Batch Funktioniert sd as nach den Stichwort "User " gesucht wird. Da das in den ersten zeilen auch vorkommt werden die übersprungen.
Gibst du den ausdruck in der ersten Forschleife ein wird dort imemr abwchselnt eine Zeile für den Username ausgegeben udn eine mit dem Status. Die "%line%" equ "" Abfrage bewirkt zusammen mit dme set "line=" in Zeile 11 das siese Ausgabe imemr abwechselnd in %line% gespeichert oder eben ausgegeben wird. So werden aus den beiden zusammengehörigen Zeilen die relevanten teile ausgesucht und zusammengesetzt.
Das war der Stand mit den Infos dieich von Eingangsposting hatte.
Mit den Konstanten Infos könnte man die Zuchabfrage allerdings auch besser anpassen.
FOR /F "skip=1 delims=" %%i in ('findstr /C:"User " "Datei.txt"') do call:verarb "%%i"
Die Batch Funktioniert sd as nach den Stichwort "User " gesucht wird. Da das in den ersten zeilen auch vorkommt werden die übersprungen.
Gibst du den ausdruck in der ersten Forschleife ein wird dort imemr abwchselnt eine Zeile für den Username ausgegeben udn eine mit dem Status. Die "%line%" equ "" Abfrage bewirkt zusammen mit dme set "line=" in Zeile 11 das siese Ausgabe imemr abwechselnd in %line% gespeichert oder eben ausgegeben wird. So werden aus den beiden zusammengehörigen Zeilen die relevanten teile ausgesucht und zusammengesetzt.
Das war der Stand mit den Infos dieich von Eingangsposting hatte.
Mit den Konstanten Infos könnte man die Zuchabfrage allerdings auch besser anpassen.
Hier noch eine Version die mit der jeweiligen Zeilennummer von "User sip:" und den relativen nachvolgenden Zeilen arbeitet:
@echo off
FOR /F "delims=:" %%i in ('findstr /n /C:"User sip:" "Datei.txt"') do call:verarb %%i
goto:eof
:verarb
set "line="
set /a offset=%1-1
set "templine="
FOR /F "skip=%offset% tokens=2 delims=:" %%i in ('type "Datei.txt"') do if not defined templine set "templine=%%i"
set "line=%templine%"
set /a offset=%1
set "templine="
FOR /F "skip=%offset% tokens=2 delims=,." %%i in ('type "Datei.txt"') do if not defined templine set "templine=%%i"
set "line=%line%%templine%"
set /a offset=%1+1
set "templine="
FOR /F "skip=%offset% delims=" %%i in ('type "Datei.txt"') do if not defined templine set "templine=%%i"
set "line=%line% %templine%"
echo %line%
goto:eof
Hier nochmal eine Erweiterte Version die so schnell wie die erstre sein sollte und die Creating / updating information mit ausliest:
@echo off
set "linenr=0"
FOR /F "skip=1 delims=" %%i in ('findstr /i /C:"User " "Datei.txt"') do call:verarb "%%i"
goto:eof
:verarb
if "%linenr%" equ "0" (
set "line="
set "linenr=1"
)
if "%linenr%" equ "1" (
FOR /F "tokens=2 delims=:" %%i in ('echo %~1') do set "line=%line% %%i"
set "linenr=2"
goto:eof
)
if "%linenr%" equ "2" (
FOR /F "tokens=2 delims=,." %%i in ('echo %1') do set "line=%line%%%i"
set "linenr=3"
goto:eof
)
if "%linenr%" equ "3" (
FOR /F "tokens=1* tokens=1 delims= " %%i in ('echo %~1') do set "line=%line% %%j"
set "linenr=4"
)
if "%linenr%" equ "4" (
echo %line%
set "linenr=0"
goto:eof
)
goto:eof