tommhii
Goto Top

Ab einen bestimmten Suchbegriff alles in eine neue Datei schreiben mittels Dos Batch

Hallo

ich habe folgendes vor ich habe ein große Txt Datei da möchte ich nur die Abschluß Statistik auslesen in eine ander Datei scheiben und vorher nach den Versandarten sotieren.

Die Zeile ab der alles was dann folgt, in die Datei geschrieben werden soll beginnt sieht so aus
14:15:19 [main ] INFO {} +++++++++++++++ Abschluss-Statistik +++++++++++++++ | d.e.b.e.c.Context->printVerarbeiterStatistik
die Ausgabezeile sollte so aussehen , auch die folgenden Zeilen in der Datei sollen ab dieser Position in die Datei geschrieben werden
Abschluss-Statistik +++++++++++++++ | d.e.b.e.c.Context->printVerarbeiterStatistik
PostBrief,bbc xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ..............
PostPaket,abc xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx .........
PostTüte,cfg xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.............
.
und alle Zeilen die mit Post beginnen wollte ich alphabetisch sortieren nach der Bezeichnung also PostBrief etc.

hat jemand eine Idee wie man das realisieren kann.


VG
Tommhi

Content-ID: 238286

Url: https://administrator.de/forum/ab-einen-bestimmten-suchbegriff-alles-in-eine-neue-datei-schreiben-mittels-dos-batch-238286.html

Ausgedruckt am: 23.12.2024 um 03:12 Uhr

SaschaRD
SaschaRD 16.05.2014 aktualisiert um 09:15:01 Uhr
Goto Top
Hallo Tommhi,
@echo off

set LOGFILE="engine.log" | Pfad deiner .txt/.log Datei  
set FILE="mail.log" | Pfad der neuen .txt/.log Datei  

FOR /f "tokens=1 delims=:" %%a in ('findstr /i /n /c:"+++++++++++++++ Abschluss-Statistik +++++++++++++++" "%LOGFILE%"') do @(  
	setlocal enabledelayedexpansion
	set /a line=%%a-1
	more %LOGFILE% +!line!>%FILE%
)
Das mit dem Sortieren verstehe ich noch nicht, ist dies in der Datei?

Bitte deine Frage und Antworten formatieren

Gruß, Sascha
tommhii
tommhii 16.05.2014 aktualisiert um 10:31:31 Uhr
Goto Top
Hallo Sacha,

danke für die schnelle Antwort .. Es entsteht eine Datei in der die Ausgabe so aussieht
14:15:19 [main ] INFO {} +++++++++++++++ Abschluss-Statistik +++++++++++++++ | d.e.b.e.c.Context->printVerarbeiterStatistik
sie sollte aber so aussehen

Abschluss-Statistik +++++++++++++++ | d.e.b.e.c.Context->printVerarbeiterStatistik
Was das sortieren angeht soll dies in der Datei passieren bevor die neue datei ensteht.
Das heisst in der Ausgabe Datei sollen alle Zeilen in denen ein Begriff mit Post vorkommt sortiert werden.


VG
Thommi
SaschaRD
SaschaRD 16.05.2014 um 10:57:24 Uhr
Goto Top
@tommhii

Habe es mit deinem 'Dängel' gemacht, da er meckert, dass die Datei noch in Benutzung ist. Vielleicht hat jemand anderes eine bessere Lösung.
@echo off

set LOGFILE="engine.log" | Pfad deiner .txt/.log Datei  
set FILE="mail.log" | Pfad der neuen .txt/.log Datei  
set SORTIERT="sortiert.log" | Pfad zur sortierten .txt/.log Datei  

FOR /f "tokens=1 delims=:" %%a in ('findstr /i /n /c:"+++++++++++++++ Abschluss-Statistik +++++++++++++++" "%LOGFILE%"') do @(  
	setlocal enabledelayedexpansion
	set /a line=%%a-1
	more %LOGFILE% +!line!>%FILE%
)

echo ich sortiere jetzt
sort %FILE% >> %SORTIERT%
echo bin jetzt mit dem sortieren fertig
del %FILE%

Gruß, Sascha
tommhii
tommhii 19.05.2014 um 15:57:16 Uhr
Goto Top
Hallo Sascha,

danke Dir für deinen Lösungsansatz aber damit komme ich nicht so richtig weiter. Vielleicht hat ja noch jemand eine Idee wie man das realisieren kann.


VG
Tommhi