Spalte in csv löschen
Hi,
ich verzweifle gerade an einem batch file:
(for /f "tokens=1,2,4,5 delims=;" %%i in (*.csv) do echo %%i,%%j,%%l,%%m) > output.csv
in der output.csv ist zwar die 3. Zeile gelöscht aber die sieht dann in so aus
C:/Pfad/ a,b,d,e
a,b,d,e
C:/PFAD/ f,g,i,j
f,g,i,j
Etc.
Ich finde einfach nicht den Grund warum immer in der output.csv erst der Pfad angeben angeben wird in in der nächsten Zeile dann das richtige Ergebnis steht.
Mein Ziel:
a,b,d,e
f,g,i,j
Vorab vielen Dank für eure Hilfe, Gruß Kileo
ich verzweifle gerade an einem batch file:
(for /f "tokens=1,2,4,5 delims=;" %%i in (*.csv) do echo %%i,%%j,%%l,%%m) > output.csv
in der output.csv ist zwar die 3. Zeile gelöscht aber die sieht dann in so aus
C:/Pfad/ a,b,d,e
a,b,d,e
C:/PFAD/ f,g,i,j
f,g,i,j
Etc.
Ich finde einfach nicht den Grund warum immer in der output.csv erst der Pfad angeben angeben wird in in der nächsten Zeile dann das richtige Ergebnis steht.
Mein Ziel:
a,b,d,e
f,g,i,j
Vorab vielen Dank für eure Hilfe, Gruß Kileo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3466079368
Url: https://administrator.de/forum/spalte-in-csv-loeschen-3466079368.html
Ausgedruckt am: 06.04.2025 um 19:04 Uhr
2 Kommentare
Neuester Kommentar
Moin,
bitte immer das exakte Skript sowie beispielhafte Daten zur Verarbeitung posten. Dein obiger Code kann so überhaupt nicht funktionieren und das von die beschriebene Verhalten lässt sich dementsprechend auch nicht nachzuvollziehen.
mit den Tokens definierst du hier 4 Schleifenvariablen beginnend bei %%i - also: %%i,%%j,%%k und %%l.
Die Variable %%m hat demnach nie einen Inhalt - und da du den 3. Token bereits ausgelassen hast, gäbe es auch keinen Grund mehr, Variable %%k zu überspringen (der echo-Befehl würde also wiederum nur in Verbindung mit "Tokens=1-5" Sinn ergeben).
Das du die Semikolons als Trennzeichen in der Output.csv durch Kommas ersetzt ist Absicht?
Dies führt allerdings zu einem Fehler, wenn die output.csv im selben Ordner wie die Quelldateien liegen, da mit "*.csv" in dem Fall auch bereits versucht wird, auf die output.csv zuzugreifen.
Gruß Thomas
PS: Bitte zukünftig Codetags nutzen.
bitte immer das exakte Skript sowie beispielhafte Daten zur Verarbeitung posten. Dein obiger Code kann so überhaupt nicht funktionieren und das von die beschriebene Verhalten lässt sich dementsprechend auch nicht nachzuvollziehen.
mit den Tokens definierst du hier 4 Schleifenvariablen beginnend bei %%i - also: %%i,%%j,%%k und %%l.
Die Variable %%m hat demnach nie einen Inhalt - und da du den 3. Token bereits ausgelassen hast, gäbe es auch keinen Grund mehr, Variable %%k zu überspringen (der echo-Befehl würde also wiederum nur in Verbindung mit "Tokens=1-5" Sinn ergeben).
Das du die Semikolons als Trennzeichen in der Output.csv durch Kommas ersetzt ist Absicht?
*.csv
dürfte hier eigentlich so auch nicht funktionieren, weil for /f keine wildcards im Dateiensatz akzeptiert. Dementsprechen bräuchtest du hier eine verschachtelte for-schleife1
2
3
2
3
@echo off
(for %%A in (*.csv) do for /f "Tokens=1,2,4,5 Delims=;" %%I in (%%A) do echo %%I,%%J,%%K,%%M) >output.csv
Dies führt allerdings zu einem Fehler, wenn die output.csv im selben Ordner wie die Quelldateien liegen, da mit "*.csv" in dem Fall auch bereits versucht wird, auf die output.csv zuzugreifen.
Gruß Thomas
PS: Bitte zukünftig Codetags nutzen.