freshman2017
Goto Top

Powershell - Daten ersetzen mit Vergleichstabelle

Hallo Zusammen,

ich habe eine CSV Vergleichstabelle, die wie folgt aufgebaut ist:

Artikelnummer;Export-Artikelnummer;
ABC;ABC123YZ;
AFG;DEF346;

und auch eine export-Datei, die ich mit Hilfe der Vergleichstabelle mit Powershell angepasst haben möchte:

123;1;ABC;X;Y;Z;
124;1;ABCD;X;Y;Z;

- sodass in der Vergleichstabelle überprüft wird, ob es die Artikelnummer aus Spalte 3 meiner export-Datei gibt und ersetzt wird, mit der Export-Artikelnummer aus der CSV Vergleichstabelle. Wenn die Artikelnummer aus Spalte 3 meiner export-Datei nicht in der Vergleichstabelle zu finden ist, soll nichts ersetzt werden:

123;1;ABC123YZ;X;Y;Z;
124;1;ABCD;X;Y;Z;

Ist das mit Powershell möglich?

Content-ID: 33604555124

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

Ausgedruckt am: 23.11.2024 um 09:11 Uhr

TK1987
Lösung TK1987 17.07.2024 aktualisiert um 13:56:59 Uhr
Goto Top
Moin,

$compareCsv = Import-CSV -Delimiter ';' -Path "D:\Pfad\zur\Vergleichstabelle.csv"  
$exportCsv  = Import-CSV -Delimiter ';' -Path "D:\Pfad\zur\Export.csv" -Header (1..7)  

Foreach ($Line in $exportCsv) {
  $index = $compareCsv.Artikelnummer.IndexOf($line.3)
  if ($index -ge 0) {$line.3 = $compareCsv."Export-Artikelnummer"[$index]}  
}

$exportCsv | ConvertTo-CSV -Delimiter ';' -NoTypeInformation | Select -Skip 1 | Set-Content -Path "D:\Pfad\zur\Export.csv" -Encoding UTF8  
tio.run

Gruß Thomas