offline
Goto Top

csv-Datei per Batch in einzelne variablen zerlegen

Hallo Leute,

ich suche ein Batch-Skript, welches mir eine csv-Datei einliest. In dieser Datei sind 12 Spalten und einige 100 Zeilen. Die Spalten sind durch ; getrennt. Mein Ziel ist es zu jedem Datensatz einen Befehl in einer Schleife auszuführen. Dabei soll jede der Spalten als eine Variable verfügbar sein. Also am einfachsten erstmal echo %Var1 %Var2 ...

Hat jemand schonmal sowas gemacht, oder kann mir einen tipp geben?

Content-Key: 77671

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

Printed on: April 19, 2024 at 10:04 o'clock

Member: pacobay
pacobay Jan 09, 2008 at 15:05:27 (UTC)
Goto Top
Hey offline,
ginge auch vbs?
ciao pacobay
Member: miniversum
miniversum Jan 09, 2008 at 15:37:19 (UTC)
Goto Top
Meinst du so?
@echo off
FOR /F "tokens=1-12 delims=;" %%a in (Mappe1.csv) do call:setit "%%a" "%%b" "%%c" "%%d" "%%e" "%%f" "%%g" "%%h" "%%i" "%%j" "%%k" "%%l"  
goto:eof

:setit
set var1=%~1
set var2=%~2
set var3=%~3
set var4=%~4
set var5=%~5
set var6=%~6
set var7=%~7
set var8=%~8
set var9=%~9
shift
set var10=%~9
shift
set var11=%~9
shift
set var12=%~9

echo %var1% %var2% %var3% %var4% %var5% %var6% %var7% %var8% %var9% %var10% %var11% %var12%
goto:eof
miniversum
Member: OFFLINE
OFFLINE Jan 09, 2008 at 15:42:09 (UTC)
Goto Top
Hallo miniversum,

danke für die schnelle antwort.
ich habe es noch etwas abgeändert. jetzt habe ich mein gewünschtes ergebnis:
FOR /F "eol=# tokens=1-12 delims=;" %%1 IN (temp.csv) DO echo %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8 %%9 %%10 %%11 %%12
Member: bastla
bastla Jan 09, 2008 at 16:05:30 (UTC)
Goto Top
Hallo OFFLINE!

Falls es doch nicht ganz das gewünschte Ergebnis sein sollte, dann so:
FOR /F "eol=# tokens=1-12 delims=;" %%a IN (12.csv) DO echo %%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l  

Grüße
bastla