CSV Datei zeilenweise in txt Dateien aufteilen, Dateinamen aus definiertem Feld erzeugen

Hallo in die Runde,
ich möchte mit einer cmd Datei eine CSV Datei mit vielen Zeilen, welche ich täglich neu erhalte in einzelne Textdateien umwandeln.
Je Zeile in der CSV Datei soll eine Textdatei (.txt) erzeugt werden.
Die CSV Datei hat immer den gleichen Aufbau und 10 Spalten.
Die CSV Datei hat keine Feldüberschriften.
Der Feldtrenner in der CSV Datei das Semikolon.
Alle Werte der Felder in der CSV Datei haben Hochkomma (“Feldwert“), das soll auch so bleiben.
Der Wert der 3. Spalte aus der CSV Datei soll der Dateiname der jeweiligen Textdatei (.txt) werden.
Der Wert der 3. Spalte ist eindeutig, es kann also keine Duplikate.
Die Ordnerstruktur wo die CSV liegt: C:\Temp\CSVAufteilung\Daten.csv
Der Dateiname der CVS Datei ist immer gleich und wird täglich automatisiert neu erstellt.
Die Textdateien sollen in das gleiche Verzeichnis geschrieben werden.
Beispiel:
Steht also in der 3 Spalte der CSV Datei der Wert “AB00001“, dann muss die erzeugte Textdatei den Dateinamen AB00001.txt bekommen, ohne die Hochkomma.
Vielen Dank für Eure Hilfe
viking
ich möchte mit einer cmd Datei eine CSV Datei mit vielen Zeilen, welche ich täglich neu erhalte in einzelne Textdateien umwandeln.
Je Zeile in der CSV Datei soll eine Textdatei (.txt) erzeugt werden.
Die CSV Datei hat immer den gleichen Aufbau und 10 Spalten.
Die CSV Datei hat keine Feldüberschriften.
Der Feldtrenner in der CSV Datei das Semikolon.
Alle Werte der Felder in der CSV Datei haben Hochkomma (“Feldwert“), das soll auch so bleiben.
Der Wert der 3. Spalte aus der CSV Datei soll der Dateiname der jeweiligen Textdatei (.txt) werden.
Der Wert der 3. Spalte ist eindeutig, es kann also keine Duplikate.
Die Ordnerstruktur wo die CSV liegt: C:\Temp\CSVAufteilung\Daten.csv
Der Dateiname der CVS Datei ist immer gleich und wird täglich automatisiert neu erstellt.
Die Textdateien sollen in das gleiche Verzeichnis geschrieben werden.
Beispiel:
Steht also in der 3 Spalte der CSV Datei der Wert “AB00001“, dann muss die erzeugte Textdatei den Dateinamen AB00001.txt bekommen, ohne die Hochkomma.
Vielen Dank für Eure Hilfe
viking
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 671764
Url: https://administrator.de/forum/csv-datei-zeilenweise-in-txt-dateien-aufteilen-dateinamen-aus-definiertem-feld-erzeugen-671764.html
Ausgedruckt am: 06.03.2025 um 04:03 Uhr
1 Kommentar
Moin,
@echo off
setlocal enabledelayedexpansion
set "csv_file=C:\Temp\CSVAufteilung\Daten.csv"
set "output_dir=C:\Temp\CSVAufteilung"
:: Prüfen, ob die CSV-Datei existiert
if not exist "%csv_file%" (
echo Die Datei %csv_file% wurde nicht gefunden!
exit /b
)
:: Datei Zeile für Zeile lesen
for /f "usebackq tokens=1-10 delims=;" %%a in ("%csv_file%") do (
set "filename=%%c"
set "filename=!filename:"=!"
echo %%a;%%b;%%c;%%d;%%e;%%f;%%g;%%h;%%i;%%j > "%output_dir%\!filename!.txt"
)
echo Verarbeitung abgeschlossen.