springstil
Goto Top

CSV mit Powershell bearbeiten (Kopieren WENN)

Hallo zusammen,

ich würde gerne mit Hilfe von PowerShell eine CSV Datei bearbeiten.

Die ausgangs CSV sieht so aus:

index

Zeile 1 und 2 sind immer Fix und fest. (Bis auf den Inhalt der sich in Zeile 1 ändert)


Mir geht es darum, das wenn in Spalte B ab der Zeile 3 ein H steht, soll er Belegfeld 1 in Belegfeld 2 kopieren und überschreiben. Belegfeld 1 soll danach Leer bleiben.
Wenn dort ein S Steht soll er einfach nichts machen.

Des weiteren soll er in Belegfeld 1 (K3) alles was / ist durch nichts ersetzen bzw einfach rauslöschen. Kann mir hier jemand bei helfen?

Content-ID: 4631754392

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

Ausgedruckt am: 21.11.2024 um 20:11 Uhr

4400667902
Lösung 4400667902 15.11.2022 aktualisiert um 11:48:30 Uhr
Goto Top
Spaltennamen anpassen ...
$csvfile = 'D:\test.csv'  
$content = Get-Content $csvFile
$csv = $content | select -Skip 1 | ConvertFrom-CSV -Delimiter ";"  
foreach ($line in $csv){
    if ($line."Soll/Haben" -eq 'H'){  
        $line."Belegfeld 2" = $line."Belegfeld 1"  
        $line."Belegfeld 1" = ''  
    }
    $line."Belegfeld 1" = $line."Belegfeld 1" -replace '/'  
}
$content,($csv | convertto-CSV -Delimiter ";" -NoTypeInformation) | Set-Content $csvfile  
Uk.
Springstil
Springstil 15.11.2022 um 13:04:02 Uhr
Goto Top
Zitat von @4400667902:

Spaltennamen anpassen ...
$csvfile = 'D:\test.csv'  
$content = Get-Content $csvFile
$csv = $content | select -Skip 1 | ConvertFrom-CSV -Delimiter ";"  
foreach ($line in $csv){
    if ($line."Soll/Haben" -eq 'H'){  
        $line."Belegfeld 2" = $line."Belegfeld 1"  
        $line."Belegfeld 1" = ''  
    }
    $line."Belegfeld 1" = $line."Belegfeld 1" -replace '/'  
}
$content,($csv | convertto-CSV -Delimiter ";" -NoTypeInformation) | Set-Content $csvfile  
Uk.

Vielen vielen dank! Klappt perfekt