Hallo Community, ich möchte eine Batch-Datei schreiben. Ich habe in mehreren Ordnern mehrere csv dateien, diese sollten in einer datei zusammengefügt werden?

... komplette Frage anzeigen

2 Antworten

Ich zerlege das mal in Teilaufgaben:


Du möchtest

  • für ein als Parameter anzugebendes Jahr
  • alle Monatsordner durchgehen und die darin befindlichen Dateien, deren Namen einem festen Benennungsschema folgen,
  • zu einer Datei zusammenfügen.


Dazu fällt mir folgendes ein:

  • Parameter einer Batchdatei kannst du mittels %1, %2... %9 nutzen.
  • Das Vorhandensein einer Datei kannst du mit "if not exist dateiname goto sprungmarke" behandeln. So kannst du eine Fehlermeldung ausgeben oder einen Monat überspringen, wenn dafür keine Daten vorliegen oder er noch nicht erreicht ist (wie z.B. jetzt noch der Oktober 2016).
  • Dateien zusammenfügen kannst du mittels
copy /b input1.csv+input2.csv+...+inputN.csv output.csv

Das /b bedeutet "binär", d.h. ohne Veränderung kopieren. Standardmodus wäre wahrscheinlich der "ASCII"-Modus, der aber unter manchen Bedingungen Probleme verursacht. Du musst eventuell ausprobieren, ob du diesen Parameter weglassen kannst.

  • Falls die input-Dateien nicht mit einem Zeilenumbruch enden, musst du jeweils zunächst temporäre Dateien erzeugen und daran explizit eine Leerzeile anhängen, da sonst die erste Zeile einer Datei direkt an die letzte Zeile der vorherigen angehängt wird:
copy /b input1.csv %TEMP%\\input1.csv
echo.>>%TEMP%\\input1.csv



Kommentar von Wasemack
26.09.2016, 15:04

Die Dateien haben alle einen fortführenden Namen, jedoch in manchen Ordnern 10 und anderen 100, deswegen bräuchte Ich eine Batch, die die Ordner einem nach dem anderen durchgeht, und alle CSV dateien in einem zusammenfügt, den einzigen input den ich machen will, sollte dann das ändern der Verzeichnisse sein, wenn ich das Jahr ändere, mir geht es hauptsächlich um eine Schleife, die von allein alle dateien zusammenfügt und dann den nächsten Ordner erledigt, es sollte eine Batch sein, welche einer Person zur Verfügung gestellt wird, diese einfach nur auszuführen ist und dann eine csv daraus wird

0

Müsste eine Batchdatei sein, da sie wahrscheinlich auf mehreren windows pcs eingesetzt wird, perl ist ja nur auf linux vorinstalliert

Was möchtest Du wissen?