trashcan
Goto Top

Per Batch Spalten aus einer Textdatei einlesen und in anderer Reihenfolge ausgeben

Hallo,

Ich bin gerade erst über dieses Forum gestolpert und hoffe, dass man mir etwas aus der Misere helfen kann.

Ich habe eine Textdatei mit Folgendem Inhalt:

Datum [Info] Beschreibung

Beispiel:

2002-04-28 Prozess_gestartet-USERPC
2003-08-14 [DEFEKT] Dateien_entpackt_und_kopiert-NETZWERK
2012-05-25 Datein.kopiert.und.gelöscht-NETZWERK

Die Spalte Info kommt nur recht selten vor, die Klammer ist aber immer Vorhanden. Lehrzeichen in der Beschreibung sind entweder mit _ oder . ersetzt (Das kommt auf die jeweilige Ausgabe an)

Nun Möchte ich diese Datei via Batch einlesen und die Spalten in anderer Reihenfolge in neuen Textdateien abspeichern:

Die Ausgabe Dateien sollen wie folgt aussehen:

Wenn Info gegeben ist:
Datei1: Beschreibung=Datum - [Info] - Beschreibung
Datei2: Datum - [Info] - Beschreibung=Beschreibung

Wenn Info nicht gegeben ist:
Datei1: Beschreibung=Datum - Beschreibung
Datei2: Datum - Beschreibung=Beschreibung

Vielen Dank schon einmal im Voraus

trashcan

Content-ID: 185469

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

Ausgedruckt am: 25.11.2024 um 13:11 Uhr

Skyemugen
Skyemugen 25.05.2012 aktualisiert um 09:05:09 Uhr
Goto Top
Aloha,

@echo off & setlocal
for /f "usebackq tokens=1-3" %%s in ("textdatei.txt") do (  
	set "end=%%u"  
	if defined end (
		>>USER.db echo %%u=%%s - %%t - %%u
		>>REUSER.db echo %%s - %%t - %%u=%%u
	) else (
	  	>>USER.db echo %%t=%%s - %%t
		>>REUSER.db echo %%s - %%t=%%t
	)
	set "end="  
)
pause

greetz André

edit: überarbeitet nach genaueren Vorgaben
bastla
bastla 25.05.2012 um 08:46:09 Uhr
Goto Top
Hallo trashcan und willkommen im Forum!

Leider kann ich mit Deiner Darstellung der gewünschten Zieldateien nicht wirklich etwas anfangen - daher bitte je ein kurzes Beispiel mit den konkreten Daten für die beiden Dateien darstellen ...

Grüße
bastla
trashcan
trashcan 25.05.2012 um 08:57:24 Uhr
Goto Top
Hallo ihr 2 und schon einmal Danke fürs kümmern.

Ja, das war wohl etwas schwammig von mir (bei 2tem lesen hab ich es nun auch gemerkt):

Also ich möchte 2 Dateien erstellen: USER.db und REUSER.db

Für USER.db soll die Ausgabe wie folgt aussehen:
Beschreibung=Datum - [Info] - Beschreibung

Beispiel USER.db:
Prozess_gestartet-USERPC=2002-04-28 - Prozess_gestartet-USERPC
Dateien_entpackt_und_kopiert-NETZWERK=2003-08-14 - [DEFEKT] - Dateien_entpackt_und_kopiert-NETZWERK
Datein.kopiert.und.gelöscht-NETZWERK=2012-05-25 - Datein.kopiert.und.gelöscht-NETZWERK
REUSER.db soll das ganze praktisch umgekehrt anzeigen:
Datum - [Info] - Beschreibung=Beschreibung

Beispiel REUSER.db:
2002-04-28 - Prozess_gestartet-USERPC=Prozess_gestartet-USERPC
2003-08-14 - [DEFEKT] - Dateien_entpackt_und_kopiert-NETZWERK=Dateien_entpackt_und_kopiert-NETZWERK
2012-05-25 - Datein.kopiert.und.gelöscht-NETZWERK=Datein.kopiert.und.gelöscht-NETZWERK

Grüße

trashcan
Skyemugen
Skyemugen 25.05.2012 um 09:05:52 Uhr
Goto Top
Aloha,

siehe oben, face-wink

Frühstück ...

greetz André
trashcan
trashcan 25.05.2012 aktualisiert um 09:22:53 Uhr
Goto Top
Vielen, vielen Dank!!! Das erspart mir wirklich eine Menge Arbeit!!!

Funktioniert Einwandfrei!

Lass es dir schmecken ;)

Viele Grüße

trashcan