rita79
Goto Top

CMD find Befehl um Logfiles der letzten x Tage auf Eintrag zu durchsuchen

Hallo zusammen,

vielleicht kann mir jemand bei meiner Frage behilflich sein und mir weiterhelfen.

Danke und Grüße
Richard

Zurzeit habe ich eine Batchdatei mit der ich eine Logdatei auf bestimmte Einträge (z.B. info@domain.com) durchsuchen kann. Die Einträge werden mir dann ganz normal in der Command-line ausgegeben. Soweit, so gut! Leider schaffe ich es nicht die Batchdatei so zu erweitern, dass ich z.B. sagen kann ich will die letzen 10 Tage auf einen bestimmten Eintrag durchsuchen. Da der Dateiname des Logfiles immer dem selben Schema folgt (SMTP0819.txt; SMTP fix;danach das aktuelle Monat;danach der aktuelle Tag) müsste es doch irgendwie möglich sein mehrere Dateien in meine Suche zu integrieren!?

Ziel ist folgendes:

1) Start Batchdatei
2) Eingabe der gewünschten E-Mail
3) Eingabe der Tage nach denen gesucht werden soll

Leider fehlt mir zu Punkt 3 ein Anhaltspunkt, wie das lösen kann...

Kann mir bitte jemand auf die Sprünge helfen... Danke

Content-Key: 171783

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

Printed on: April 18, 2024 at 16:04 o'clock

Mitglied: 60730
60730 Aug 19, 2011 at 15:33:15 (UTC)
Goto Top
moinsen,

  • um das eine Ziel zu erreichen (die Batchdatei so zu erweitern, ...) wäre es von Vorteil die Batchdatei zu kennen, sonst fangen wir von vone an und das unbezahlt bei dem Wetter?....

  • dann ist das andere Ziel ja nur durch einen Umweg zu erreichen, der sich rechnen nennt und Datumsrechnen in Batch ist nicht unbedingt die Stärke von eben jenem, das kann vbs besser.

  • Apropos besser, ich vermute du nimmst nicht den Logparser zum auswerten sondern ...?

Gruß
Member: bastla
bastla Aug 19, 2011 at 18:14:58 (UTC)
Goto Top
Hallo RiTa79!

Unter der Annahme, dass für jeden Tag ein Logfile entsteht, sollte es doch genügen, die entsprechende Anzahl der neuesten Files in einen Temp-Ordner zu kopieren und dort zu verarbeiten / durchsuchen - schematisch etwa so:
set "Ordner=D:\Logs"  
set "T=%temp%\Auswertung"  
rd /s /q "%T%" 2>nul  
set /p Anzahl=Wieviele Tage? 
for /f "tokens=1* delims=:" %%i in ('dir /b /a-d /o-d "%Ordner%\*.log"^|findstr /n "^"') do if %%i leq %Anzahl% copy "%Ordner%\%%j" "%T%\"  
echo Durchsucht werden:
dir /b "%T%"  
Gibt es nicht jeden Tag ein File, werden eben die zB 10 aktuellsten berücksichtigt.

Wenn (vielleicht besser) nicht anhand des Änderungsdatums, sondern nach dem Erstellungsdatum sortiert werden soll, "dir /b /tc /a-d /o-d" verwenden ...

Grüße
bastla