Powershell - Daten ersetzen mit Vergleichstabelle
Hallo Zusammen,
ich habe eine CSV Vergleichstabelle, die wie folgt aufgebaut ist:
und auch eine export-Datei, die ich mit Hilfe der Vergleichstabelle mit Powershell angepasst haben möchte:
- 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:
Ist das mit Powershell möglich?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 33604555124
Url: https://administrator.de/forum/powershell-daten-ersetzen-mit-vergleichstabelle-33604555124.html
Ausgedruckt am: 25.12.2024 um 16:12 Uhr
1 Kommentar
Moin,
tio.run
Gruß Thomas
$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
Gruß Thomas