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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 171783
Url: https://administrator.de/contentid/171783
Ausgedruckt am: 26.11.2024 um 11:11 Uhr
2 Kommentare
Neuester Kommentar
moinsen,
Gruß
- 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ß
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:
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, "
Grüße
bastla
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%"
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