jabali07
Goto Top

Delimiter

Hallo @all,

habe eine Frage: Wenn man aus einem csv-file nur bestimmte 'tokens' ausgegeben haben möchte und dies über eine FOR-Anweisung macht, ist es dann möglich, zu definieren, dass man nur das erste, und das letzte token haben möchte, egal wieviel tokens dazwischen liegen? Danke für Eure Hilfe.

Gruß
jabali07

Content-ID: 110618

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

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

bastla
bastla 05.03.2009 um 13:32:07 Uhr
Goto Top
Hallo jabali07!

Etwa so (wenn keine "\" in der Datei enthalten sind):
@echo off & setlocal
set "Datei=D:\Deine.csv"  
set "Delim=;"  

for /f "usebackq delims=" %%i in ("%Datei%") do set "Zeile=%%i" & call :ProcessLine  
goto :eof

:ProcessLine
for /f "delims=%Delim%" %%a in ("%Zeile%") do set "Erstes=%%a"  
call set Zeile=%%Zeile:%Delim%=\%%
for /f "delims=" %%a in ("%Zeile%") do set "Letztes=%%~nxa"  
echo %Erstes%_%Letztes%
goto :eof
Grüße
bastla
Biber
Biber 05.03.2009 um 13:41:34 Uhr
Goto Top
Moin jabali07,

  • "das erste Token" wirst Du immer ansprechen können als "token=1".
  • "das letzte Token" kannst Du immer nur ansprechen unter der Ordinal-Ziffer (i.e. "Tokens=17" beim 17ten Token etc.]

Wenn insgesamt weniger als 33 Tokens in einer Zeile sind, dann geht es problemlos.
Falls die CSV-Datei mehr als diese Anzahl Tokens enthält-->bitte mehr Details.

Grüße
Biber
jabali07
jabali07 06.03.2009 um 14:32:59 Uhr
Goto Top
@bastla/Biber: Man bekommt hier immer sofort Hilfe. Herzlichen Dank dafür!

Gruß jabali07
bastla
bastla 06.03.2009 um 15:34:22 Uhr
Goto Top
Hallo jabali07!

Danke für den Dank face-smile

Hast Du damit schon Deine Lösung? Falls ja, bitte zumindest noch einen Wie kann ich einen Beitrag als gelöst markieren? für den Beitrag ...

Grüße
bastla

[Edit] Danke face-smile [/Edit]