Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Bereich eines Logfiles in ein separates File zusammenfassen inkl. Logfile Name

Frage Entwicklung Batch & Shell

Mitglied: tkline

tkline (Level 1) - Jetzt verbinden

16.10.2007, aktualisiert 02.11.2007, 4234 Aufrufe, 9 Kommentare

Hi,

hab da mal ne Frage:

Ich habe einen Ordner, in dem Logfiles im *.txt Format gespeichert werden.
Der Inhalt der txt-Files sieht in etwa so aus:
WARNING ( 145123): Sicherung nicht komplett
WARNING ( 121345): Fehler ist vernachlässigbar
ERROR ( 135214): Datei ist defekt.
INFO ( 234534): Heute ist ein schöner Tag
DEBUG ( 234230): Debugging successful
Ich möchte nun aus allen Logfiles die Werte Warning und Error
auslesen und in eine separate txt-Datei kopieren. Zusätzlich soll die
Bezeichnung des Logfiles dazugeschrieben werden, aus dem die Information
herausgezogen worden ist.

Das Endergebnis (logsummary.txt) soll ungefähr so aussehen:
Logfilename: 20071008_1647_import_log
ERROR ( 135214): Datei ist defekt.
WARNING ( 145123): Sicherung nicht komplett
WARNING ( 121345): Fehler ist vernachlässigbar

Logfilename: 20071008_1649_import_log
ERROR ( 135214): Datei ist defekt.
WARNING ( 145123): Sicherung nicht komplett
Ist das mit einem Batchfile machbar?


Würde mit folgendem Befehl z.B. find /i "ERROR ("
die Zeilen mit "Error" auslesen, aber dann verließen sie mich,
die geistigen Ergüsse der Programmierkunst.


Gruß
Tom
Mitglied: Biber
16.10.2007 um 17:02 Uhr
Moin tkline,

zum Testen am CMD-Prompt:
01.
>for %i in (2007*.txt) do @for /f "delims=" %a in ('findstr /v "^INFO" "%i"^|findstr /v "^DEBUG"') do @echo %a 
02.
WARNING ( 145123): Sicherung nicht komplett 
03.
WARNING ( 121345): Fehler ist vernachlässigbar 
04.
ERROR ( 135214): Datei ist defekt.
Im Batch ungefähr (ungetestet):
01.
@for %%i in (2007*.txt) do @( 
02.
echo Logfilename %%i >>logfile_summary.txt 
03.
for /f "delims=" %%a in ('findstr /v "^INFO" "%%i"^|findstr /v "^DEBUG"') do @echo %%a >>logfile_summary.txt 
04.
)
Gruß
Biber
Bitte warten ..
Mitglied: bastla
16.10.2007 um 18:02 Uhr
... oder, um "positiv" zu filtern:
01.
@echo off & setlocal 
02.
set "Summary=D:\logfile_summary.txt" 
03.
set "Filter=WARNING ERROR" 
04.
 
05.
if exist "%Summary%" del "%Summary%" 
06.
for %%i in (D:\2007*.txt) do ( 
07.
	findstr /b "%Filter%" "%%i">nul && ( 
08.
		echo Logfilename: %%i 
09.
		for /f "delims=" %%a in ('findstr /b "%Filter%" "%%i"') do echo %%a 
10.
		echo. 
11.
	)>>"%Summary%" 
12.
)
Grüße
bastla
Bitte warten ..
Mitglied: tkline
16.10.2007 um 18:57 Uhr
Zunächst mal danke für eure Lösungen.

Bei der Lösung von Biber funktioniert soweit alles einwandfrei.
Meine testdatei hat mit log*.txt angefangen und dann hat mir der
Batch in mein logfile_summary.txt auch gleich die logfile_summary.txt
mit ausgewertet. Aber das ist mein Fehler. Bin halt Anfänger

Bei der Lösung von Bastla finde ich die positive Filterung gut, damit
kann ich dann eventuell auftretende andere Codes neben DEBUG und INFO
erschlagen. Leider funktioniert das bei mir noch nicht, muß mal schauen
was ich da falsch eingebe.

Werde jetzt weiter rumprobieren.

Danke nochmal für eure Vorschläge, habt mir damit sehr weitergeholfen.


Grüße

Tom
Bitte warten ..
Mitglied: tkline
17.10.2007 um 10:31 Uhr
Hi,
hab nun alles am laufen. Läuft alles wunderbar.
Hab das ganze noch mit einem Echo Befehl gekrönt, damit ich sehen kann wie
weit er die logs schon abgearbeitet hat. Danke euch!

Hätte dazu noch eine Frage:

Ist es möglich einen Filter zu setzen, der mir z.B. ein Warning bzw. eine ERROR Zeile
mit bestimmten Wörtern z.B. "WARNING ( 121345): Fehler ist vernachlässigbar" herausfiltert
also nicht mit übernimmt? Oder brauch ich dazu eine IF Anweisung?

Gruß
Tom
Bitte warten ..
Mitglied: bastla
17.10.2007 um 15:50 Uhr
Hallo tkline!

Dann etwa so:
01.
@echo off & setlocal 
02.
set "Summary=D:\logfile_summary.txt" 
03.
set "PosFilter=WARNING ERROR" 
04.
set "NegFilter=vernachlässigbar" 
05.
 
06.
if exist "%Summary%" del "%Summary%" 
07.
for %%i in (D:\2007*.txt) do call :ProcessFile "%%i" 
08.
goto :eof 
09.
 
10.
:ProcessFile 
11.
findstr /b "%PosFilter%" %1 |findstr /v "%NegFilter%">nul || goto :eof 
12.
echo Logfilename: %~1 >>"%Summary%" 
13.
findstr /b "%PosFilter%" %1 |findstr /v "%NegFilter%" >>"%Summary%" 
14.
echo.>>"%Summary%"
Falls sich die Negativfilter-Einträge auf einzelne Wörter (wie im Beispiel oben) beschränken lassen, diese einfach mit Leerzeichen getrennt anführen - ansonsten müssten mehrere "findstr /C:" hintereinander geschaltet werden.

Grüße
bastla
Bitte warten ..
Mitglied: tkline
02.11.2007 um 15:21 Uhr
Hallo bastla,

Sorry für die späte Rückmeldung, hab deinen letzten Beitrag irgenwie übersehen.

Das ganze funktioniert so ganz super. Hab da noch eine Verständnisfrage:
Wenn ich anstatt nach einzelnen Wörtern nach ganzen Sätzen suchen lasse, dann kann ich das mit "findstr /C." regeln. Wie schreibe ich das unter dem Punkt NegFilter?
Hab hier versucht mit Anführungszeichen zu arbeiten, aber bekomme immer den Fehler
"Kann nicht geöffnet werden oder Fehler beim schreiben."

Eine Frage noch:
An welcher Stelle muss ich beim Ausführen des Batches den echo Befehl setzen, damit ich sehen kann welche Dateien er gerade abarbeitet?

Danke dir für deine bisherigen Bemühungen.

Gruß
Tom
Bitte warten ..
Mitglied: bastla
02.11.2007 um 17:26 Uhr
Hallo tkline!

Wenn ich anstatt nach einzelnen Wörtern nach ganzen Sätzen suchen lasse, dann kann ich das mit "findstr /C." regeln. Wie schreibe ich das unter dem Punkt NegFilter?
Eigentlich so wie oben das einzelne Wort "vernachlässigbar", also mit je einem Anführungszeichen vor "NegFilter" und einem Anführungszeichen am Ende - zumindest wenn in Deinem Satz selbst keine Anführungszeichen enthalten sind.

An welcher Stelle muss ich beim Ausführen des Batches den echo Befehl setzen, damit ich sehen kann welche Dateien er gerade abarbeitet?
Wenn Du die Zeile
01.
echo Logfilename: %~1 >>"%Summary%"
nochmals ohne die Umleitung unmittelbar nach der Zeile ":ProcessFile" einfügst, wird der Name am Bildschirm angezeigt.

Zusammen mit den "findstr"-Änderungen für ganze Sätze würde demnach das ":ProcessFile"-Unterprogramm so aussehen:
01.
:ProcessFile 
02.
echo Bearbeite Logfile: %~1 
03.
findstr /b "%PosFilter%" %1 |findstr /v /c:"%NegFilter%">nul || goto :eof 
04.
echo Logfilename: %~1 >>"%Summary%" 
05.
findstr /b "%PosFilter%" %1 |findstr /v /c:"%NegFilter%">>"%Summary%" 
06.
echo.>>"%Summary%"
Grüße
bastla
Bitte warten ..
Mitglied: tkline
02.11.2007 um 18:37 Uhr
Hallo bastla,

Tausend Dank! Ich weiß jetzt was ich falsch gemacht hab. Ich hab versucht neben den
einzelnen Wörtern noch den Satz mit unterzubringen, deshalb hat das ganze nicht hingehauen.
Hab ewig rumprobiert und war schon verzweifeln.

Hab das ganze jetzt auf jeweils zwei Sätze ausgeweitet. So siehts nun fertig aus:

01.
@echo off & setlocal 
02.
set "Summary=C:\log_summary.txt" 
03.
set "PosFilter=WARNING ERROR" 
04.
set "NegFilter=Sicherung nicht komplett" 
05.
set "NegFilter2=Fehler ist vernachlässigbar" 
06.
 
07.
if exist "%Summary%" del "%Summary%" 
08.
for %%i in (C:\logs\Log*.txt) do call :ProcessFile "%%i" 
09.
goto :eof 
10.
 
11.
:ProcessFile 
12.
echo Bearbeite Logfile: %~1 
13.
findstr /b "%PosFilter%" %1 |findstr /v /c:"%NegFilter%">nul |findstr /v /c:"%NegFilter2%">nul| goto :eof 
14.
echo Logfilename: %~1 >>"%Summary%" 
15.
findstr /b "%PosFilter%" %1 |findstr /v /c:"%NegFilter%"|findstr /v /c:"%NegFilter2%">>"%Summary%" 
16.
echo.>>"%Summary%" 
17.
 
So nun haut alles wunderbar hin. Danke dir nochmal

Viele Grüße
Tom
Bitte warten ..
Mitglied: bastla
02.11.2007 um 18:42 Uhr
Hallo tkline!

Könntest Du bitte noch Deinen Batch zwischen "<code>"-Tags setzen und dann den Beitrag als erledigt kennzeichnen?

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Logfile Unterordner
gelöst Frage von michi-ffmBatch & Shell7 Kommentare

Hallo Zusammen, hat jemand evtl einen Vorschlag? Ich möchte gerne das er mir sämtliche Dateien anzeigt die im Unterordner ...

Batch & Shell
LogFile splitten
gelöst Frage von MuHMuHBatch & Shell7 Kommentare

Guten Abend Zusammen, ich muss per robocopy eine große Anzahl Dateien und Ordner kopieren. Das klappt auch ganz gut, ...

Batch & Shell
Robocopy Logfile
Frage von michi-ffmBatch & Shell7 Kommentare

Hallo zusammen, evtl kann jemand helfen ^^ Habe hier ein Teile aus dem Code: Das skript synchronisiert 2 Ordner ...

Firewall
Hilfe bei Interpretation Firewall Logfile
Frage von sfar11Firewall9 Kommentare

Hallo zusammen! Ich bin neu hier ;) Kurz vorweg: ich bin Laie, versuche aber mich in Themen einzuarbeiten und ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 8 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 15 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 104 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless18 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...