easyeyesystem
Goto Top

Fehler For Schleife

Hallo

ich habe ein Problem mit meiner For Schleife

Hier die CSV Datei:
|Peter|Maier|HDueee32ds|123|02/02/03|System|
|Mustermann|Max|FuedgfGiodje|234|02/02/03|System|

und nun noch der Code für die Schleife
for /F "tokens=1-7 delims=|" %%i in (example.csv) do (  
call :importdata %%i %%j %%k %%l %%m %%n 
)

jedoch ließt das Script die CSV Datei falsch ein

Name: "Peter-Maier"  
 
Name: Peter

Name: "Mustermann-Max"  

Name: Mustermann

Wo denke ich hier falsch?

Content-Key: 92977

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

Printed on: April 24, 2024 at 07:04 o'clock

Member: Dynadrate
Dynadrate Jul 26, 2008 at 17:23:25 (UTC)
Goto Top
Ich habe gerade mal folgendes ausgeführt:
C:\>for /F "tokens=1-7 delims=|" %i in ("|Peter|Maier|HDueee32ds|123|02/02/03|System|") do (echo %i)  

Ausgabe:
C:\>(echo Peter )
Peter

und:
C:\>for /F "tokens=1-7 delims=|" %i in ("|Peter|Maier|HDueee32ds|123|02/02/03|System|") do (echo %j)  
Ausgabe:

C:\>(echo Maier )
Maier

Das scheinen ja die korrekten Werte zu sein. Von daher gehe ich davon aus, das ":importdata" Schuld hat!
Member: EasyEyeSystem
EasyEyeSystem Jul 26, 2008 at 17:40:13 (UTC)
Goto Top
ok dann hab ich nen denkfehler drin
hab die csv datei gerade eben etwas angepasst:
Peter;Maier;HDueee32ds;123;01-02-34;System
Mustermann;Max;FuedgfGiodje;234;01-02-03;System
das :importdata wertet nur diese werte aus
%%i %%j %%k %%l %%m %%n 
und daran sollte übergeben werden
i=Peter
j=Maier
k=HD....
l=123
m=01-02-34
n=System
und dann beim nächsten durchgang der schleige
i=Mustermann
j=Max
k=Fue....
l=234
m=01-02-03
n=System

Jetzt bin ich ja mal gespannt wo hier mein Denkfehler ist
Mitglied: 67369
67369 Jul 26, 2008 at 17:54:07 (UTC)
Goto Top
Wieviel Tokens zählst du denn in deinem Beispiel?
Member: EasyEyeSystem
EasyEyeSystem Jul 26, 2008 at 18:07:35 (UTC)
Goto Top
in dem aktuellen hab ich 6 Stück angegebn - Hab ich evtl. hier meinen denkfehler?

Danke schon mal
Mitglied: 67369
67369 Jul 26, 2008 at 18:09:15 (UTC)
Goto Top
Nee, es sind ja auch nur 6. Oben hattest du aber 1-7 angegeben. face-wink

Vielleicht postest du einfach mal das komplette Script, zumindest die Teile, die aufgerufen werden. Oder unterliegt der Inhalt strengster Geheimhaltung?
Member: EasyEyeSystem
EasyEyeSystem Jul 26, 2008 at 19:03:16 (UTC)
Goto Top
natürlich nicht

hier ist es

@echo off
echo starting ...	

for /F "tokens=1,2,3,4,5,6 delims=;" %%i in (example.csv) do (  
call :importdata %%i %%j %%k %%l %%m %%n 
)
echo.
echo.
echo --- All Operations done ---
echo.
pause
exit

:importdata
set fname=%1
set lname=%2
set password=%3
set id=%4
set room=%5
set title=%6
echo  "%fname%" "%lname%" "%password%" "%id%" "%room%" "%title%"  
goto :EOF

und die csv
Peter;Maier;HDueee32ds;123;01-02-34;System
Mustermann;Max;FuedgfGiodje;234;01-02-03;System
Mitglied: 67369
67369 Jul 26, 2008 at 19:16:16 (UTC)
Goto Top
Die Ausgabe ist doch völlig korrekt, die Variablen werden so angelegt, wie sie von der Textdatei ausgelesen werden.
Member: EasyEyeSystem
EasyEyeSystem Jul 26, 2008 at 19:25:38 (UTC)
Goto Top
Habs mal auf nem andern Computer ausgeführt.

Da läuft es wirklich.

Was da ist weiß ich noch nicht.

Sobald ich was weiß poste ich es.

Danke noch mal.