Ich versuche, eine Spalte aus einer CSV-Datei in eine Variable zu laden. Meine CSV-Datei enthält leere Spalten so ,,
haben können, welche durch die ignoriert zu werden scheint folgende:Batchdatei-Token ignorieren leere Trennzeichen
FOR /F "tokens=3 delims=," %%a in (csvfile.csv) do (
set date=%%a
echo %%a
)
Also, wenn Datei csvfile.csv
enthält
fred,wilma,tony, john, greg, wilber, blake
chris,,steve,deon,bryan,mark,anthony
ich das Ergebnis möchte:
tony
steve
Aber ich bekomme:
tony
deon
Wenn ich einen Leerraum in die leere Spalte einfüge, funktioniert das wie erwartet. Wie setze ich delims
so, dass leere Spalten nicht ignoriert werden?
Müssen Sie nicht zusätzliche äußere '' '', wie '(" "! Line: ^,^=", "!" ")', Da die äußeren von 'for/F verbraucht werden 'Befehl? – aschipfl
@aschplfl das hat erstaunlich funktioniert (zumindest für token <> 1). Erstaunlicherweise funktioniert auch dein Vorschlag nicht. Sehen Sie meinen bearbeiteten Code. – Stephan
es funktionierte für mich, ich habe es gerade erfolgreich getestet; beachte die veränderte Flucht; Wie auch immer, es scheint, dass '~' auf dem führenden '' 'beruht, aber nicht auf dem nachfolgenden; übrigens ist das' -' in 'echo - %% ~ b' ein Tippfehler, richtig? – aschipfl