Batch - Mit batch eine txt verändern bzw kürzen (siehe Posting)
Möchte Logs kürzen (siehe Beitrag)
Ein schönen Sylvesterabend an alle!
Ich bin dabei ein BackUp-Programm zu schreiben für mein System.
Konzept:
1: Virenscan (mit log)
2: Sicherheitskopie der wichtigsten Verzeichnisse auf andere HDD machen (mit log)
3: Sicherheitskopie packen (mit log) (danach Orignal behalten oder nicht, je nach Wahl)
4: Image vom System erstellen
Klingt einfach?
Ist es auch! (Relativ)
"Problem":
Läuft alles einwandfrei soweit, bis auf den einen "Schönheitsfehler", dass die logs doch recht lang ausfallen (~2MB und grösser).
Zumindest das vom AntiViren-Test. Da bräuchte ich nur die letzten 7 Zeilen (Zusammenfassung) und vom Log des Packvorgangs eigentlich nur die Hälfte (Zeilenanzahl variiert).
Das BackUp wird erst gepackt und dann das Archiv getestet, jedoch landet beides in einem logfile. Ich bräuchte aber nur den Teil des logs, in dem das Archiv getestet wird.
P.S.:
Einen guten Rutsch ins neue Jahr! *Prost*
[Edit Biber]Beitrag verschoben von "Windows" nach "Batch & Shell"[/Edit]
Ein schönen Sylvesterabend an alle!
Ich bin dabei ein BackUp-Programm zu schreiben für mein System.
Konzept:
1: Virenscan (mit log)
2: Sicherheitskopie der wichtigsten Verzeichnisse auf andere HDD machen (mit log)
3: Sicherheitskopie packen (mit log) (danach Orignal behalten oder nicht, je nach Wahl)
4: Image vom System erstellen
Klingt einfach?
Ist es auch! (Relativ)
"Problem":
Läuft alles einwandfrei soweit, bis auf den einen "Schönheitsfehler", dass die logs doch recht lang ausfallen (~2MB und grösser).
Zumindest das vom AntiViren-Test. Da bräuchte ich nur die letzten 7 Zeilen (Zusammenfassung) und vom Log des Packvorgangs eigentlich nur die Hälfte (Zeilenanzahl variiert).
Das BackUp wird erst gepackt und dann das Archiv getestet, jedoch landet beides in einem logfile. Ich bräuchte aber nur den Teil des logs, in dem das Archiv getestet wird.
P.S.:
Einen guten Rutsch ins neue Jahr! *Prost*
[Edit Biber]Beitrag verschoben von "Windows" nach "Batch & Shell"[/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 76947
Url: https://administrator.de/contentid/76947
Ausgedruckt am: 16.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo Xalimeo und willkommen im Forum!
Ähnliche Fragestellungen haben wir immer wieder, neulich etwa hier ...
Das Finden der Zeilennummer, bis zu welcher/ab welcher das Logfile benötigt wird, lässt sich mit "findstr" bewerkstellligen, etwa für das erste Vorkommen des Suchkriteriums:
Für die letzte Zeile, welche das Suchkriterium enthält, findest Du die Zeilennummer so:
Falls das Suchkriterium am Beginn der Zeile stehen muss, kannst Du zusätzlich noch "/b" verwenden (siehe "findstr /?").
Grüße
bastla
[Edit] Hatte ein "n" verlegt, aber inzwischen wieder gefunden und gleich in der ersten Textzeile hinter "habe" platziert ... [/Edit]
Ähnliche Fragestellungen haben wir immer wieder, neulich etwa hier ...
Das Finden der Zeilennummer, bis zu welcher/ab welcher das Logfile benötigt wird, lässt sich mit "findstr" bewerkstellligen, etwa für das erste Vorkommen des Suchkriteriums:
@echo off & setlocal
set Zeile=
for /f "delims=:" %%i in ('findstr /n /c:"Dein Suchkriterium" "Deine LogDatei.log"') do if not defined Zeile set Zeile=%%i
echo %Zeile%
@echo off & setlocal
for /f "delims=:" %%i in ('findstr /n /c:"Dein Suchkriterium" "Deine LogDatei.log"') do set Zeile=%%i
echo %Zeile%
Grüße
bastla
[Edit] Hatte ein "n" verlegt, aber inzwischen wieder gefunden und gleich in der ersten Textzeile hinter "habe" platziert ... [/Edit]
Hallo Xalimeo!
Die jeweilige Zeilennummer steht ja in der Variable %Zeile%, welche Du dann entsprechend einsetzen kannst.
Wenn Du zwei verschiedene Zeilennummern benötigst, einfach zwei "for"-Schleifen mit verschiedenen Variablen zB (VonZeile und BisZeile) verwenden. Die Ausgabe würde dann etwa so erfolgen (jeweils inklusive Von- und BisZeile):
"geq" ("greater or equal" = "größer oder gleich") und "leq" ("less or equal" = "kleiner oder gleich") kannst Du auch durch "gtr" bzw "lss" ersetzen - siehe dazu "if /?".
Grüße
bastla
P.S.: Es spricht eigentlich nichts dagegen, nur auszugsweise aus den vorhergehenden Kommentaren zu zitieren ...
Die jeweilige Zeilennummer steht ja in der Variable %Zeile%, welche Du dann entsprechend einsetzen kannst.
Wenn Du zwei verschiedene Zeilennummern benötigst, einfach zwei "for"-Schleifen mit verschiedenen Variablen zB (VonZeile und BisZeile) verwenden. Die Ausgabe würde dann etwa so erfolgen (jeweils inklusive Von- und BisZeile):
for /f "delims=: tokens=1,*" %%i in ('findstr /n $ "Deine Logdatei.txt"') do if %%i geq %VonZeile% if %%i leq %BisZeile% echo.%%j
Grüße
bastla
P.S.: Es spricht eigentlich nichts dagegen, nur auszugsweise aus den vorhergehenden Kommentaren zu zitieren ...