Der Befehl Import-CSV ist ein sehr nützliches Tool innerhalb von Powershell-Skripten. Problematisch wird es immer dann, wenn als Trennzeichen nicht , : oder ; verwendet.

Das Szenario

Wir haben eine CSV-Datei falscheCSV.csv die als Trennzeichen für die einzelnen Felder das Zeichen ## verwendet. Wir wollen innerhalb des Skripts auf die einzelnen Werte der CSV-Einträge zugreifen.

Der Split

Unser Weg zum Ziel ist hier ganz einfach. Über den Befehl:

$ImportLine = Get-Content C:\falscheCSV.csv

wird eine komplette Zeile aus der Datei falscheCSV.csv in die Variable $ImportLine importiert. Nun muss man diese nur noch über folgenden Befehl in ein Array aufsplitten:

$ImportLineArray = $ImportLine.Split("##")

Das Ziel

Nun kann man ganz einfach über den Array-Operator [] auf die einzelnen Werte zugreifen. $ImportLineArray[0] liefert hier zum Beispiel den 1. Eintrag der Zeile.