firetool
Goto Top

Per Batch txt Datei zusammenfügen und neue oben anstellen

Hallo zusammen,

ich bin Neu hier, aber ich habe schon oft eine Lösung hier finden können. Allerdings komme ich mit meinem Wissen nicht mehr weiter und finde nicht das richtige Thema.

Ich möchte eine Einsatzübersicht per Batch erstellen lassen.

Hier müssen immer wieder neue Textdateien zusammen gefügt werden.

Die Dateien kommen immer im gleichen Format an.
Somit ist jede .txt Datei mit einem solchen Text:
Einsatz Nr : Datum * Uhrzeit * Stichwort * Stichwort_Bezeichnung * Stadt * Straße *

Diese Dateien werden automatisch erzeugt und in einem Ordner abgelegt.

Nun möchte ich diese zusammen fügen um eine Übersicht zu erstellen.

Hier sollte jedoch jede neue Datei die eingelesen wird oben angestellt werden.

Allrdings nicht ganz oben (hier sollte ich ein fester Titel wie z.B. Einsatzübersicht stehen haben)

Sprich fertig stelle ich mir das so vor:

Überschrift: (immer ganz oben gehalten)

Einsatz 6 : Datum * Uhrzeit * Stichwort * Stichwort_Bezeichnung * Stadt * Straße *
_______________________________________________________________________________________________________

Einsatz 5 : Datum * Uhrzeit * Stichwort * Stichwort_Bezeichnung * Stadt * Straße *
_______________________________________________________________________________________________________

Einsatz 4 : Datum * Uhrzeit * Stichwort * Stichwort_Bezeichnung * Stadt * Straße *
_______________________________________________________________________________________________________

Einsatz 3 : Datum * Uhrzeit * Stichwort * Stichwort_Bezeichnung * Stadt * Straße *
_______________________________________________________________________________________________________

Einsatz 2 : Datum * Uhrzeit * Stichwort * Stichwort_Bezeichnung * Stadt * Straße *
_______________________________________________________________________________________________________

Einsatz 1 : Datum * Uhrzeit * Stichwort * Stichwort_Bezeichnung * Stadt * Straße *
_______________________________________________________________________________________________________

set "directory=Dateipfad neue Dateien"  
set "delimeter=_________________"  

if exist %directory%\result.txt del %directory%\result.txt
if exist %tmp%\result del %tmp%\result

for %%F in (%directory%\*.txt) do (echo.&type "%%~fF"&echo.&echo.%delimeter%)>>%tmp%\result  

type %tmp%\result > %directory%\result.txt
del %tmp%\result
end

Da werden mir dann auch alle Dateien zusammen gefügt, aber wie kann ich da jetzt festlegen das die neue Datei nun hier im Beispiel über Einsatz 6 steht und wieder mit dem delimeter getrennt wird?

Die fertige Datei muss dann immer im gleiche Ordner abgelegt werden und den gleichen Namen haben sowie bestehende Dateien mit dem gleichen Namen löschen falls vorhanden.
Das wäre jetzt nicht das Problem, aber ich komme bei der Zeilengeschichte einfach nicht weiter und finde keine Lösung.

Schonmal vielen Dank im Voraus für Eure Hilfe.

Content-Key: 667591

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

Printed on: April 16, 2024 at 06:04 o'clock

Member: NordicMike
NordicMike Jun 15, 2021 at 04:35:13 (UTC)
Goto Top
zwei Varianten:

1) Du baust die Liste jedes Mal ganz neu zusammen, Directory auslesen sortiert nach Erstellungsdatum.

oder

2) Du löscht aus der alten Liste die oberste Zeile (die Überschrift) und fügst alles wieder zusammen, nach:
  • ueberschrift.txt > neue_liste.txt
  • neuer_inhalt.txt >> neue_liste.txt
  • delimeter.txt >> neue_liste.txt
  • alte_liste.txt >> neue_liste.txt
In diesem Fall musst du in der alte_liste.txt nach dem Löschen der Überschrift noch ermitteln welche Nummer der oberste Auftrag hatte und erhöhst um +1 und schreibst es in die neuer_inhalt.txt dazu.
Member: firetool
firetool Jun 15, 2021 updated at 08:53:04 (UTC)
Goto Top
Variante eins hört sich auf Anhieb für mich am einfachsten an, aber wie bekomme ich das sortiert nach Erstelldatum?
Wie sage ich ihm bei der Variante dann die Überschrift?

Variante zwei wäre theoretisch auch machbar, aber da hab ich noch gar kein Ansatz wie ich das umsetzten kann.
Die alten Dateien könnte ich mir schon irgendwo in ein Ordner schieben und aufheben.
Und dann bei einem neuen Einsatz wieder aus dem Ordner abrufen (nach Erstelldatum ?).
Aber wie kann ich ihm sagen pack mir die Überschrift ganz oben hin, dann die Datei aus dem neuen Ordner und dann die Dateien aus dem alten Ordner?