pludan
Goto Top

PowerShell: CSV in CSV kopieren

Hallo

Ich bin an einem PS Skript dran der den Inhalt von CSV 1 in CSV 2 kopiert. Wie ist es möglich, dies so zu machen, das der Skript nur die Differenz kopiert. Also nur die Daten die in CSV 2 nicht enthalten sind ?

Mein wissen reicht bis jetzt nur, das der ganze Inhalt von CSV 1 in CSV 2 ergänzt wird.

Für euer Hilfe bin ich sehr Dankbar.

Beste Grüsse Daniel

Content-ID: 338596

Url: https://administrator.de/forum/powershell-csv-in-csv-kopieren-338596.html

Ausgedruckt am: 22.04.2025 um 21:04 Uhr

132895
Lösung 132895 22.05.2017 aktualisiert um 16:49:11 Uhr
Goto Top
colinardo
Lösung colinardo 22.05.2017 aktualisiert um 18:23:02 Uhr
Goto Top
Servus Daniel,
Zitat von @132895:
Stichwort compare-object
Genau, damit geht das schnell und schmerzlos.

Hier ein Beispiel:
$csv1 = @"  
Name;Alter
Max;10
Michael;15
Hans;22
Klaus;11
"@ | convertfrom-csv -Delimiter ";"  

$csv2 = @"  
Name;Alter
Max;10
Klaus;11
"@ | convertfrom-csv -Delimiter ";"  

# Nur Zeilen in CSV2 ergänzen die dort noch nicht enthalten sind
$csv2 += compare $csv1 $csv2 -Property 'Name','Alter' -PassThru | ?{$_.SideIndicator -eq '<='}  

# Testweise CSV2 nun auf der Konsole ausgeben
$csv2
Ergebnis:
Name    Alter
----    -----
Max     10   
Klaus   11   
Michael 15   
Hans    22   
Die Definition der CSV-Dateien machst du bei dir natürlich per Import-CSV, die Variante über Convertfrom-CSV dient hier nur dazu ein repräsentatives Beispiel zu zeigen. Das essentielle passiert dann ja eh nur in Zeile 16. Wichtig ist das du dort im Parameter -Property die Spalten angibst welche verglichen werden sollen, d.h. alle Eigenschaften die du in dem Array angibst werden für einen Vergleich der Zeilen herangezogen.

Grüße Uwe
Pludan
Pludan 23.05.2017 um 08:37:38 Uhr
Goto Top
Hey Uwe

Dies hat so super geklappt face-smile

Vielen Dank
Grüsse Daniel