Batch Algorithmus für Tokenizer

Firewire2002

Registered User
Moin,

bin auf der Suche nach einem Algorithmus der in "Batch" (Windows :)) umgesetzt werden kann.

Zu folgendendem Problem:
Gegegeben ist eine CSV Datei die gern auch mal mit Excel bearbeitet wird.
Werden Felder frei gelassen kann sie unteranderem so aussehen:
Code:
t;;m;n;;k

Bisher werden die Felder über folgende Schleife ausgelesen:
Code:
for /F "skip=1 tokens=1,2,3,4,5,6 delims=;" %%i in (%csvdatei%) do {
In den Tokens %%i, %%j, %%k, %%l, %%m, %%n stehen danach die entsprechenden Werte.
Leere Felder werden aber leider übersprungen, sodass das Ergebnis letzendlich so aussieht:
Code:
%%i = t
%%j = m
%%k = n
%%l = k
%%m =
%%n =

Statt so:
Code:
%%i = t
%%j = 
%%k = m
%%l = n
%%m =
%%n = k

Mit welchem Algorithmus bekomm ich nun den gewünschten Effekt? :)
 
Melde den Bug doch mal bei MS. :)

Was passiert wenn die Zeile so aussehen würde?
Code:
t; ;m;n; ;k
oder so?
Code:
"t";"";"m";"n";"";"k"

huschi.
 
Mit Leerzeichen das gleiche Ergebnis wie oben.
Mit Anführungszeichen würde es funktionieren, nur erzeugt Excel die CSV Datei im von mir zu erst genannten Format.

An der Tatsache, dass die CSV in Excel bearbeitet wird, lässt sich in absehbarer Zeit nichts ändern.
 
Öhm genau sowas wollte ich vermeiden.
In diesem Script waren 8 Fremdprogramme genutzt, welche ich nun alle schon fleißig in der Batch für die benötigte Funktion nachgebaut habe.

Ich möchte ein reines Script ohne Tools die auf einer Standard Windows 2003 Installation nicht vorhanden sind.

Zudem wäre das ein höherer Aufwand, weil während der Laufzeit die CSV dann 3mal vorhanden wäre.
Das derzeitige Script erzeugt bereits eine temporäre Datei auf die nicht verzichtet werden kann.
 
Back
Top