Powershell CSV String in Spalte einfügen, falls Wert kürzer als 9 Zeichen
Schönen Start in die Woche liebe Administratoren,
ich bastle gerade an einer CSV und möchte eine bestimmte Spalte daraufhin überprüfen, ob die Werte kürzer als 9 Stellen sind und falls ja, mit Nullen zu Beginn auffüllen, bis es 9 Stellen sind. Ich habe es bereits mit String.Insert und If Abfrage versucht, erhalte jedoch lediglich den bereits existierenden, letzten Wert der Spalte ohne addierte Nullen zurück (im folgenden Bsp. also "91").
Die CSV sieht in etwa so aus:
und als Ergebnis würde ich es gerne wie folgt haben (Spalte VAL):
Ich habe versucht, die CSV Datei über foreach und Import-CSV einzulesen und dann innerhalb der foreach Anweisung die einzelnen Zeilen der Spalte VAL mittels IF Abfrage auf String.Length zu überprüfen und dann über String.Insert die Nullen einzufügen. Das klappt leider nicht.
Per Websuche habe ich nur mögliche Lösungen über C# aber nicht PS gefunden. Kann mir bitte jemand weiterhelfen?
Vielen Dank und schöne Grüße
narthan
ich bastle gerade an einer CSV und möchte eine bestimmte Spalte daraufhin überprüfen, ob die Werte kürzer als 9 Stellen sind und falls ja, mit Nullen zu Beginn auffüllen, bis es 9 Stellen sind. Ich habe es bereits mit String.Insert und If Abfrage versucht, erhalte jedoch lediglich den bereits existierenden, letzten Wert der Spalte ohne addierte Nullen zurück (im folgenden Bsp. also "91").
Die CSV sieht in etwa so aus:
"EMP";"TYP1";"TYP2";"DATE";"TYP3";"VAL"
"";"CT";"CS";"20200928";"VV";"1901"
"";"CT";"CS";"20200928";"VV";"20113"
"";"CT";"CS";"20200928";"VV";"159"
"";"CT";"CS";"20200928";"VV";"91"
und als Ergebnis würde ich es gerne wie folgt haben (Spalte VAL):
"EMP";"TYP1";"TYP2";"DATE";"TYP3";"VAL"
"";"CT";"CS";"20200928";"VV";"000001901"
"";"CT";"CS";"20200928";"VV";"000020113"
"";"CT";"CS";"20200928";"VV";"000000159"
"";"CT";"CS";"20200928";"VV";"000000091"
Ich habe versucht, die CSV Datei über foreach und Import-CSV einzulesen und dann innerhalb der foreach Anweisung die einzelnen Zeilen der Spalte VAL mittels IF Abfrage auf String.Length zu überprüfen und dann über String.Insert die Nullen einzufügen. Das klappt leider nicht.
Per Websuche habe ich nur mögliche Lösungen über C# aber nicht PS gefunden. Kann mir bitte jemand weiterhelfen?
Vielen Dank und schöne Grüße
narthan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 608375
Url: https://administrator.de/contentid/608375
Ausgedruckt am: 08.11.2024 um 11:11 Uhr
2 Kommentare
Neuester Kommentar
Ich habe versucht, die CSV Datei über foreach und Import-CSV einzulesen und dann innerhalb der foreach Anweisung die einzelnen Zeilen der Spalte VAL mittels IF Abfrage auf String.Length zu überprüfen und dann über String.Insert die Nullen einzufügen. Das klappt leider nicht.
Überflüssig, das macht dir z.B. die padLeft Funktion viel komfortabler $csv = Import-CSV 'D:\blablub.csv' -delimiter ";"
$csv | %{$_.Val = $_.Val.padLeft(9,'0')}
$csv
# ...
$csv | %{$_.Val = '0'*(9-$_.Val.length) + $string}
# ....