supermars
Goto Top

Mehrere Logfiles in einem Ordner nach bestimmten Textinhalten durchsuchen und in anderer LogDatei Dateiname speichern

Hallo Leute,
ich möchte einen kompletten Ordner durchsuchen lassen

Meine Frage ist, wie ich es hinbekomme mit einer Batch Datei
einen ganzen Ordner, der voll mit Logfiles ist (so ca. 400 Stück... beispiel.log)
automatisiert nach bestimmten Inhalt zu durchsuchen. Das heißt, es soll in jedem der 400 Logs
nach Beispielsweise dem Wort "Wetter" gesucht werden. Wenn in einer oder mehreren Log Dateien nun das
Wort "Wetter" gefunden worden ist, soll einfach nur der Dateiname der Logdateien, in dem das Wort "Wetter"
gefunden wurde in einem neuen Logfile oder Textdokument im selben Ordner abgespeichert werden.

Beispiel:
In den Logdateien blabla1.log und lalala.log wurde nun das Wort "Wetter" gefunden.
Jetzt einfach neue Logdatei automatisch erstellen lassen namens Gefunden.log , in der die Dateinamen
blablal.log und lalala.log aufgelistet sind.

Ich wäre total dankbar für eine passende Lösung, da ich nach langem suchen noch immer nicht das passende gefunden habe.

mfg
Supermars

Content-ID: 105088

Url: https://administrator.de/contentid/105088

Ausgedruckt am: 23.11.2024 um 10:11 Uhr

FrY
FrY 03.01.2009 um 02:44:50 Uhr
Goto Top
Für welches Betriebssystem?
Für Linux wäre es zum Beispiel (einfach einen Cronjob erstellen):

grep -H SUCHWORT DATEINAME > AUSGABEDATEI

also

grep -H Wetter *.log > Ausgabe.txt

=
Log1.log:Wetter
Log9.log:Wetter

usw.
bastla
bastla 03.01.2009 um 10:59:48 Uhr
Goto Top
Hallo Supermars und willkommen im Forum!

Sollte es sich bei Deinem BS doch um ein (einigermaßen aktuelles) Windows handeln, dann etwa so:
findstr /i /m "Wetter" "*.log">Gefunden.log
Soll das Ganze als Batch ausgeführt werden, dann ev noch Pfadangaben ergänzen oder einfach:
@echo off & setlocal
set "Suche=Wetter"  
set "Erg=Gefunden.log"  
set "Logs=D:\Dein Ordner\mit den\vielen Logs"  
pushd "%Logs%"  
findstr /i /m /c:"%Suche%" "*.log">"%Suche%-%Erg%"  
popd

Grüße
bastla
Supermars
Supermars 03.01.2009 um 13:07:24 Uhr
Goto Top
vielen Dank schonmal für die tollen Antworten face-smile .

Um die Frage von FrY zu beantworten: Habe Windows XP

ich werde die Batch gleich mal ausprobieren und schreiben ob es funktioniert ;)

Grüße
Supermars
Supermars
Supermars 03.01.2009 um 14:11:53 Uhr
Goto Top
Zitat von @bastla:
Hallo Supermars und willkommen im Forum!

Sollte es sich bei Deinem BS doch um ein (einigermaßen
aktuelles) Windows handeln, dann etwa so:
findstr /i /m "Wetter"
> "*.log">Gefunden.log
> 
Soll das Ganze als Batch ausgeführt werden, dann ev
noch Pfadangaben ergänzen oder einfach:
@echo off & setlocal
> set "Suche=Wetter"  
> set "Erg=Gefunden.log"  
> set "Logs=D:\Dein Ordner\mit den\vielen Logs"  
> pushd "%Logs%"  
> findstr /i /m /c:"%Suche%"  
> "*.log">"%Suche%-%Erg%"  
> popd
> 

Grüße
bastla



also ich habe die batch befehle jetzt für meinen ordner umgeändert, aber irgendwie will das nicht klappen.
habe folgendes in batch.bat abgespeichert.
@echo off & setlocal
set "Suche=Wetter"  
set "Erg=D:\logordner\Gefunden.log"  
set "Logs=D:\logordner"  
pushd "%Logs%"  
findstr /i /m /c:"%Suche%" "*.log">"%Suche%-%Erg%"  
popd 

habe zum test im logordner ne test.log abgespeichert und darin das Wort "Wetter" reingeschrieben, aber beim ausführen der Batch wird kein Gefunden.log erstellt wo der Dateiname test.log drinne steht. Ich weiß nicht weiter, muss ich noch was in den Batchbefehlen ergänzen, hab ich was vergessen?
Danke schonmal für ne Antwort face-smile
bastla
bastla 03.01.2009 um 15:02:27 Uhr
Goto Top
Hallo Supermars!

Da Du für die Ergebnisdatei einen Pfad angibst, muss die Zeile 6 geändert werden:
findstr /i /m /c:"%Suche%" "*.log">"%Erg%"
Grüße
bastla
Supermars
Supermars 03.01.2009 um 15:13:42 Uhr
Goto Top
Aah dankeschön face-smile
es hat funktioniert face-smile
vielen lieben lieben Dank
Grüße
Supermars