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-Key: 238286

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

Printed on: April 19, 2024 at 03:04 o'clock

Member: SaschaRD
SaschaRD May 16, 2014 updated at 07:15:01 (UTC)
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
Member: tommhii
tommhii May 16, 2014 updated at 08:31:31 (UTC)
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
Member: SaschaRD
SaschaRD May 16, 2014 at 08:57:24 (UTC)
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
Member: tommhii
tommhii May 19, 2014 at 13:57:16 (UTC)
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