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-Key: 338596

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

Printed on: April 19, 2024 at 05:04 o'clock

Mitglied: 132895
Solution 132895 May 22, 2017 updated at 14:49:11 (UTC)
Goto Top
Member: colinardo
Solution colinardo May 22, 2017 updated at 16:23:02 (UTC)
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
Member: Pludan
Pludan May 23, 2017 at 06:37:38 (UTC)
Goto Top
Hey Uwe

Dies hat so super geklappt face-smile

Vielen Dank
Grüsse Daniel