HOWTO · PowerShell
Aufteilen einer Zeichenfolge in getrennte Variablen in PowerShell
In diesem Tutorial wird das Aufteilen einer Zeichenfolge in separate Variablen in PowerShell vorgestellt.
Auf dieser Seite
Um Teile einer Zeichenfolge in PowerShell separaten Variablen zuzuweisen, teilen Sie die Zeichenfolge zunächst in ein Array auf und weisen Sie den gewünschten Elementen Variablen zu. Verwenden Sie die String.Split()-Methode für wörtliche Trennzeichen und den -split-Operator, wenn das Trennzeichen ein regulärer Ausdruck sein soll.
Die folgenden Beispiele zeigen die Werte, die bei den jeweiligen Zuweisungen entstehen.
Eine Zeichenfolge mit der String.Split()-Methode aufteilen
String.Split() ist eine Methode einer Zeichenfolge. Ohne Trennzeichen teilt sie den Text an Leerraumzeichen auf. Der Rückgabewert ist ein Array. Verwenden Sie dessen Indizes, um die Elemente benannten Variablen zuzuweisen. Das erste Element hat den Index 0.
Führen Sie dieses Beispiel aus:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
$text = "Hello World"
$parts = $text.Split()
$first = $parts[0]
$second = $parts[1]
$first
$second
$record = "North|East|West"
$limitedParts = $record.Split([char[]]@('|'), 2)
$region = $limitedParts[0]
$remaining = $limitedParts[1]
$region
$remaining
Das erste Variablenpaar erhält Hello und World. Mit der Überladung, die ein Zeichenarray und eine Anzahl entgegennimmt, können Sie ein wörtliches Trennzeichen auswählen und die Zahl der zurückgegebenen Teile begrenzen. Im zweiten Beispiel ist der senkrechte Strich das Trennzeichen und die Anzahl beträgt zwei. $region erhält daher den Text vor dem ersten senkrechten Strich und $remaining den gesamten Text danach, einschließlich möglicher weiterer senkrechter Striche. Das Trennzeichen wird aus den zurückgegebenen Teilen entfernt.
Übergeben Sie ein Zeichenarray, wenn Sie an mehreren wörtlichen Zeichen teilen möchten. Beispielsweise behandelt Split([char[]]@(',', ';')) ein Komma oder Semikolon als Trennzeichen. Wenn aufeinanderfolgende Trennzeichen für Ihre Daten wichtig sind, prüfen Sie, wie die ausgewählte Überladung mit den dadurch entstehenden benachbarten Teilen umgeht, und wählen Sie bei Bedarf ausdrücklich einen Wert für StringSplitOptions. Die Methode eignet sich, wenn Sie an wörtlichen Zeichen trennen und die .NET-Überladungen für Trennzeichen, Optionen oder eine maximale Anzahl von Teilen nutzen möchten.
Eine Zeichenfolge mit dem -split-Operator aufteilen
Der -split-Operator ist eine kompakte Alternative, die einen regulären Ausdruck als Trennzeichen verwendet. So können Sie bequem an einem Muster teilen, etwa an einem oder mehreren Leerraumzeichen (\s+) oder an einem beliebigen Zeichen aus einer Zeichenmenge. Wie bei der Methode ist das Ergebnis ein Array, dessen Elemente sich separaten Variablen zuweisen lassen. Die optionale Begrenzung legt die maximale Anzahl der Teile fest; der Text nach der letzten erlaubten Teilung verbleibt im letzten Teil.
Führen Sie dieses Beispiel aus:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
$fruitLine = "apple,banana;cherry|date"
$firstFruit, $remainingFruit = $fruitLine -split '[,;|]', 2
$firstFruit
$remainingFruit
Hier trifft die Zeichenklasse [,;|] auf ein Komma, Semikolon oder einen senkrechten Strich. Die erste Variable erhält apple; die zweite erhält banana;cherry|date, da die Anzahl der Teilungen auf zwei begrenzt ist. Anders als String.Split() interpretiert -split das Trennzeichen als regulären Ausdruck. Maskieren Sie daher Metazeichen des regulären Ausdrucks, wenn Sie sie wörtlich suchen möchten.
Verwenden Sie -match, wenn Sie prüfen möchten, ob eine Zeichenfolge einem Muster entspricht, oder passende Gruppen erfassen wollen. Der Operator teilt eine Zeichenfolge nicht an Treffern des Trennmusters; dafür verwenden Sie -split. Wählen Sie String.Split() für wörtliche Trennzeichen und überladungsspezifische Optionen und -split für Trennmuster mit regulären Ausdrücken. Weisen Sie in beiden Fällen die Elemente des zurückgegebenen Arrays benannten Variablen zu, wenn spätere Befehle die einzelnen Werte benötigen.