Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Batch - Mit batch eine txt verändern bzw kürzen (siehe Posting)

Frage Entwicklung Batch & Shell

Mitglied: Xalimeo

Xalimeo (Level 1) - Jetzt verbinden

31.12.2007, aktualisiert 18.10.2012, 7076 Aufrufe, 6 Kommentare

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]
Mitglied: Fraenky
01.01.2008 um 11:59 Uhr
Frohes Neues.

Ich würde diesen Beitrag unter
Entwicklung/Programmiersprachen/Batch & Shell
einstellen.

Gruß
Fraenky
Bitte warten ..
Mitglied: bastla
01.01.2008, aktualisiert 18.10.2012
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:
01.
@echo off & setlocal 
02.
set Zeile= 
03.
for /f "delims=:" %%i in ('findstr /n /c:"Dein Suchkriterium" "Deine LogDatei.log"') do if not defined Zeile set Zeile=%%i 
04.
echo %Zeile%
Für die letzte Zeile, welche das Suchkriterium enthält, findest Du die Zeilennummer so:
01.
@echo off & setlocal 
02.
for /f "delims=:" %%i in ('findstr /n /c:"Dein Suchkriterium" "Deine LogDatei.log"') do set Zeile=%%i 
03.
echo %Zeile%
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]
Bitte warten ..
Mitglied: Xalimeo
02.01.2008 um 00:01 Uhr
Frohes Neues.

Ich würde diesen Beitrag unter
Entwicklung/Programmiersprachen/Batch &
Shell
einstellen.

Gruß
Fraenky
Tut mir leid, aber ich hatte noch nicht wirklich die Zeit mich hier überall umzugucken.
Habe auch zu sehr den Gedanken des BackUps eines Windows-Systems im Kopf gehabt und deswegen gleich hier gepostet. Da war ich vielleicht ein wenig vorschnell. Sorry.


[...]
01.
@echo off & setlocal 
02.
set Zeile= 
03.
for /f "delims=:" %%i in ('findstr /n /c:"Dein Suchkriterium" "Deine LogDatei.log"') do if not defined Zeile set Zeile=%%i 
04.
echo %Zeile%
Falls das Suchkriterium am Beginn der Zeile stehen muss, kannst Du zusätzlich noch "/b" verwenden (siehe "findstr /?").

Grüße
bastla
Super, das klappt hervorragend!
Jetzt hab ich nurnoch das Problemchen, dass ich die beiden Zeilennummer der jeweiligen Datei entweder nur im Prompt angezeigt kriege, oder die Ausgabe in eine txt ausgeben lasse.
Und nun würd ich gerne die txt auslesen und den Inhalt (Anfangs- und EndZeilennummer des Logs, wie ich es nachher haben möchte) im Program weiterverwenden.
Hab hier schon ein bisschen rumgelesen und Google, etc gefragt, jedoch nichts passendes finden können.
Bitte warten ..
Mitglied: bastla
02.01.2008 um 01:32 Uhr
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):
01.
for /f "delims=: tokens=1,*" %%i in ('findstr /n $ "Deine Logdatei.txt"') do if %%i geq %VonZeile% if %%i leq %BisZeile% echo.%%j
"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 ...
Bitte warten ..
Mitglied: Biber
04.01.2008 um 15:37 Uhr
Moin Xalimeo,

ist denn Deine Frage hinreichend beantwortet oder sind noch Fragen offen?
Falls noch etwas klemmt, dann poste Deinen bisherigen Code mit einer konkreten Problemstellung.
Falls nein, setze bitte einen "Erledigt"-Haken, damit ich den Beitrag schließen kann.

Danke
Biber
Bitte warten ..
Mitglied: Biber
12.01.2008 um 19:08 Uhr
Beitrag auf "Gelöst" gesetzt und geschlossen.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (24)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...