viking
Goto Top

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

article-picture
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

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

Xaero1982
Xaero1982 05.03.2025 um 20:28:18 Uhr
Goto Top
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.