Doppelte Dateneinträge per Batch aus Datei löschen? HILFE
Liebe Gemeinde,
Ihr konntet mir als Anfänger sehr gut helfen. Ich brauche jetzt aber noch Hilfe bei der doppelte Einträge aus einer .csv - (komma-getrennt)
gelöscht werden soll.
Meine .csv ist wie folgt aufgebaut:
Per Batch-Skript kopiere ich diese Datei bereits und benenne dies um:
Jetzt würde ich gerne in der zielohnedup-%DATE%.csv folgendes Anhand der Spalte A stehe haben:
Kann mir nochmal wer helfen?
Beste Grüße,
freshman2017
Ihr konntet mir als Anfänger sehr gut helfen. Ich brauche jetzt aber noch Hilfe bei der doppelte Einträge aus einer .csv - (komma-getrennt)
gelöscht werden soll.
Meine .csv ist wie folgt aufgebaut:
NR,NR1,NR2,NR3,NAME,VORNAME,PLZ,ORT,STRASSE,DATUM1,DATUM2,ARTIKELNAME,NR4,MENGE,TAXE,TAXE1,BRUTTO,TAXE3,NR5,NR6,NR7,
a,b,c,d,MUSTERMANN,MAX,12345,MUSTERSTADT,MUSTERSTRAßE 1,17.03.2017,16.03.2017,ABC2,12345,12,19,20,23,250.00,123452,23,123,
a,b,c,d,MUSTERMANN,MAX,12345,MUSTERSTADT,MUSTERSTRAßE 1,17.03.2017,16.03.2017,ABC2,12345,12,19,20,23,250.00,123452,23,123,
ab,b,c,d,MUSTERMANN,MAX,12345,MUSTERSTADT,MUSTERSTRAßE 1,17.03.2017,16.03.2017,ABC2,12345,12,19,20,23,250.00,123452,23,123,
ab,b,c,d,MUSTERMANN,MAX,12345,MUSTERSTADT,MUSTERSTRAßE 1,17.03.2017,16.03.2017,ABC2,12345,12,19,20,23,250.00,123452,23,123,
ac,b,c,d,MUSTERMANN,MAX,12345,MUSTERSTADT,MUSTERSTRAßE 1,17.03.2017,16.03.2017,ABC2,12345,12,19,20,23,250.00,123452,23,123,
ac,b,c,d,MUSTERMANN,MAX,12345,MUSTERSTADT,MUSTERSTRAßE 1,17.03.2017,16.03.2017,ABC2,12345,12,19,20,23,250.00,123452,23,123,
Per Batch-Skript kopiere ich diese Datei bereits und benenne dies um:
@echo off
copy %userprofile%\Desktop\CSV\Exporte\quelle.csv %userprofile%\Desktop\CSV\Exporte\zielohnedup-%DATE%.csv
Jetzt würde ich gerne in der zielohnedup-%DATE%.csv folgendes Anhand der Spalte A stehe haben:
NR,NR1,NR2,NR3,NAME,VORNAME,PLZ,ORT,STRASSE,DATUM1,DATUM2,ARTIKELNAME,NR4,MENGE,TAXE,TAXE1,BRUTTO,TAXE3,NR5,NR6,NR7,
a,b,c,d,MUSTERMANN,MAX,12345,MUSTERSTADT,MUSTERSTRAßE 1,17.03.2017,16.03.2017,ABC2,12345,12,19,20,23,250.00,123452,23,123,
ab,b,c,d,MUSTERMANN,MAX,12345,MUSTERSTADT,MUSTERSTRAßE 1,17.03.2017,16.03.2017,ABC2,12345,12,19,20,23,250.00,123452,23,123,
ac,b,c,d,MUSTERMANN,MAX,12345,MUSTERSTADT,MUSTERSTRAßE 1,17.03.2017,16.03.2017,ABC2,12345,12,19,20,23,250.00,123452,23,123,
Kann mir nochmal wer helfen?
Beste Grüße,
freshman2017
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 333334
Url: https://administrator.de/forum/doppelte-dateneintraege-per-batch-aus-datei-loeschen-hilfe-333334.html
Ausgedruckt am: 10.04.2025 um 01:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo freshman2017,
sollte etwa so funktionieren.
Grüße
rubberman
sollte etwa so funktionieren.
@echo off &setlocal
set "src=%userprofile%\Desktop\CSV\Exporte\quelle.csv"
set "dst=%userprofile%\Desktop\CSV\Exporte\zielohnedup-%DATE%.csv"
set "before="
setlocal EnableDelayedExpansion
<"!src!" >"!dst!" (
for /f %%i in ('type "!src!"^|find /c /v ""') do for /l %%j in (1 1 %%i) do (
set "ln=" &set /p "ln="
for /f "delims=," %%k in ("!ln!") do if "!before!" neq "%%k" (
echo(!ln!
set "before=%%k"
)
)
)
rubberman
Hallo freshman2017
In Variable "ln" ist die komplette Zeile gespeichert. "delims" gibt die Trennzeichen an (hier ist es lediglich das Komma). Wenn keine "tokens" angegeben werden, wird nur das erste token (Teilstring, der durch delims getrennt wird) verarbeitet. Dieses landet dann in der FOR Variablen (%%k). Also wie du es ausdrücken würdest, die erste Spalte.
Grüße
rubberman
for /f "delims=," %%k in ("!ln!") do ...
In Variable "ln" ist die komplette Zeile gespeichert. "delims" gibt die Trennzeichen an (hier ist es lediglich das Komma). Wenn keine "tokens" angegeben werden, wird nur das erste token (Teilstring, der durch delims getrennt wird) verarbeitet. Dieses landet dann in der FOR Variablen (%%k). Also wie du es ausdrücken würdest, die erste Spalte.
Grüße
rubberman
Nee, nicht wirklich. Wenn der Inhalt der ersten drei Datenfelder in jeder Zeile die gleiche Anzahl Zeichen enthält, könntest du den SORT Befehl mit der Option /+n verwenden. Das n ist dabei das Offset vom Zeilenanfang, bei dem die Sortierung einsetzen soll. Ich kenne natürlich dein realen Daten nicht ...
Grüße
rubberman
Grüße
rubberman