THEMA about_Split KURZBESCHREIBUNG Erklärt, wie der Teilungsoperator verwendet wird, um eine oder mehrere Zeichenfolgen in Teilzeichenfolgen zu teilen. DETAILBESCHREIBUNG Der Teilungsoperator teilt eine oder mehrere Zeichenfolgen in Teilzeichenfolgen. Sie können die folgenden Elemente des Teilungsvorgangs ändern: -- Trennzeichen. Die Standardeinstellung sind Leerräume, Sie können aber Zeichen, Zeichenfolgen, Muster oder Skriptblöcke angeben, die das Trennzeichen angeben. -- Maximale Anzahl von Teilzeichenfolgen. Standardmäßig werden alle Teilzeichenfolgen zurückgegeben. Wenn die von Ihnen angegebene Anzahl kleiner als die der Teilzeichenfolgen ist, werden die verbleibenden Teilzeichenfolgen in der letzten Teilzeichenfolge verkettet. -- Optionen zum Angeben der Bedingungen für die Übereinstimmung von Trennzeichen, z. B. "SimpleMatch" und "Multiline". SYNTAX Das folgende Diagramm zeigt die Syntax des -split-Operators. Die Parameternamen werden im Befehl nicht angegeben. Schließen Sie nur die Parameterwerte ein. Die Werte müssen in der im Syntaxdiagramm angegebenen Reihenfolge angezeigt werden. -Split <String> <String> -Split <Delimiter>[,<Max-substrings>[,"<Options>"]] <String> -Split {<ScriptBlock>} [,<Max-substrings>] In einer split-Anweisung können Sie "-split" durch "-iSplit" oder "-cSplit" ersetzen. Bei den Operatoren "-iSplit" und "-split" wird die Groß-/Kleinschrei- bung nicht beachtet. Beim -cSplit-Operator wird die Groß-/Kleinschreibung beachtet, d. h., dass die Groß-/Kleinschrei- bung bei Anwendung der Trennzeichenregeln beachtet wird. PARAMETER <String> Gibt eine oder mehrere Zeichenfolgen an, die geteilt werden sollen. Wenn Sie mehrere Zeichenfolgen angeben, werden alle Zeichenfolgen mit denselben Trennzeichenregeln geteilt. Beispiel: -split "rot gelb blau grün" rot gelb blau grün <Delimiter> Die Zeichen, die das Ende einer Teilzeichenfolge identifizieren. Das Standardtrennzeichen ist ein Leerraum, einschließlich von Leerzeichen und nicht druckbaren Zeichen wie Zeilenwechsel ("`n") und Tabstopp ("`t"). Wenn die Zeichenfolgen geteilt werden, wird das Trennzeichen in allen Teilzeichenfolgen weggelassen. Beispiel: "Nachname:Vorname:Adresse" -split ":" Nachname Vorname Adresse <Max-substrings> Gibt die maximale Anzahl der zurückzugebenden Teilzeichenfolgen an. Standardmäßig werden alle vom Trennzeichen geteilten Teilzeichenfolgen zurückgegeben. Wenn mehr Teilzeichenfolgen vorhanden sind, werden diese in der abschließenden Teilzeichenfolge verkettet. Falls weniger Teilzeichenfolgen vorhanden sind, werden alle Teilzeichenfolgen zurückgegeben. Beim Wert 0 und bei negativen Werten werden alle Teilzeichenfolgen zurückgegeben. Wenn Sie mehr als eine Zeichenfolge (ein Zeichenfolgenarray) an den Teilungsoperator übergeben, wird die durch "Max-substrings" angegebene Begrenzung auf jede einzelne Zeichenfolge angewendet. Beispiel: $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" $c -split ",", 5 Mercury Venus Earth Mars Jupiter,Saturn,Uranus,Neptune <ScriptBlock> Ein Ausdruck, der Regeln für das Anwenden des Trennzeichens angibt. Der Ausdruck muss "$true" oder "$false" ergeben. Schließen Sie den Skriptblock in geschweifte Klammern ein. Beispiel: $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptu ne" $c -split {$_ -eq "e" -or $_ -eq "p"} M rcury,V nus,Earth,Mars,Ju it r,Saturn,Uranus,N tun <Options> Schließen Sie den Optionsnamen in Anführungszeichen ein. Optionen sind nur dann gültig, wenn der <Max-substrings>-Para- meter in der Anweisung verwendet wird. Die Syntax für den Options-Parameter lautet: "SimpleMatch [,IgnoreCase]" "[RegexMatch] [,IgnoreCase] [,CultureInvariant] [,IgnorePatternWhitespace] [,ExplicitCapture] [,Singleline | ,Multiline]" Die SimpleMatch-Optionen lauten: -- SimpleMatch: Verwendung des einfachen Zeichenfolgenver- gleichs bei Auswertung des Trennzeichens. Kann nicht mit "RegexMatch" verwendet werden. -- IgnoreCase: Erzwingt beim Vergleich die Beachtung von Groß-/Kleinschreibung, auch wenn der -cSplit-Operator angegeben wird. Die RegexMatch-Optionen lauten: -- RegexMatch: Verwendung von Vergleichen mit regulären Ausdrücken zum Auswerten des Trennzeichens. Dies ist das Standardverhalten. Kann nicht mit "SimpleMatch" verwendet werden. -- IgnoreCase: Erzwingt beim Vergleich die Beachtung von Groß-/Kleinschreibung, auch wenn der -cSplit-Operator angegeben wird. -- CultureInvariant: Ignoriert kulturelle Sprachunterschiede beim Auswerten des Trennzeichens. Nur mit "RegexMatch" gültig. -- IgnorePatternWhitespace: Ignoriert Leerstellen ohne Escapezeichen und mit dem Nummernzeichen (#) markierte Kommentare. Nur mit "RegexMatch" gültig. -- Mehrzeilig: Im Multiline-Modus werden Beginn und Ende von Zeilen und Zeichenfolgen erkannt. Nur mit "RegexMatch" gültig. Der Standardwert ist "Singleline". -- Singleline: Im Singleline-Modus werden nur Beginn und Ende von Zeichenfolgen erkannt. Nur mit "RegexMatch" gültig. Der Standardwert ist "Singleline". -- ExplicitCapture: Ignoriert nicht benannte Gruppen von Übereinstimmungen, sodass nur explizit erfasste Gruppen in der Ergebnisliste zurückgegeben werden. Nur mit "RegexMatch" gültig. UNÄRE und BINÄRE TEILUNGSOPERATOREN Der unäre Teilungsoperator (-split <string>) hat Vorrang vor einem Komma. Wenn Sie eine durch Kommas getrennte Liste von Zeichenfolgen an den unären Teilungsoperator senden, wird daher nur die erste Zeichenfolge (vor dem ersten Komma) geteilt. Um mehrere Zeichenfolgen zu teilen, verwenden Sie den binären Teilungsoperator (<string> -split <delimiter>). Schließen Sie alle Zeichenfolgen in Klammern ein, oder speichern Sie die Zeichenfolgen in einer Variablen, die Sie dann an den Teilungsoperator senden. Betrachten Sie das folgende Beispiel: -split "1 2", "a b" 1 2 a b "1 2", "a b" -split " " 1 2 a b -split ("1 2", "a b") 1 2 a b $a = "1 2", "a b" -split $a 1 2 a b BEISPIELE Die folgende Anweisung teilt die Zeichenfolge bei Leerräumen. C:\PS> -split "Windows PowerShell 2.0`nWindows PowerShell mit Remoting" Windows PowerShell 2.0 Windows PowerShell mit Remoting Die folgende Anweisung teilt die Zeichenfolge bei jedem Komma. C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split ',' Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune Die folgende Anweisung teilt die Zeichenfolge mit dem Muster "er". C:\PS>"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split 'er' M cury,Venus,Earth,Mars,Jupit ,Saturn,Uranus,Neptune Die folgende Anweisung führt beim Buchstaben "N" eine Teilung unter Beachtung der Groß-/Kleinschreibung aus. C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -cSplit 'N' Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus, eptune Die folgende Anweisung teilt die Zeichenfolge bei "e" und "t". C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[et]' M rcury,V nus, ar h,Mars,Jupi r,Sa urn,Uranus,N p un Die folgende Anweisung teilt die Zeichenfolge bei "e" und "r", aber beschränkt die resultierenden Teilzeichenfolgen auf sechs. C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[er]', 6 M cu y,V nus, arth,Mars,Jupiter,Saturn,Uranus,Neptune Die folgende Anweisung teilt eine Zeichenfolge in drei Teilzeichenfolgen. C:\PS> "a,b,c,d,e,f,g,h" -split ",", 3 a b c,d,e,f,g,h Die folgende Anweisung teilt zwei Zeichenfolgen in drei Teilzeichenfolgen. (Die Beschränkung wird auf jede Zeichenfolge einzeln angewendet.) C:\PS> "a,b,c,d", "e,f,g,h" -split ",", 3 a b c,d e f g,h Die folgende Anweisung teilt jede Zeile in der here-Zeichenfolge bei der ersten Ziffer. Dabei wird die Multiline-Option verwendet, um den Anfang jeder Zeile und Zeichenfolge zu erkennen. Die 0 stellt den Wert zum Zurückgeben aller Werte des Max-substrings-Parameters dar. Sie können Optionen wie "Multiline" nur verwenden, wenn der Max-substrings-Wert angegeben wird. C:\PS> $a = @' 1Die erste Zeile. 2Die zweite Zeile. 3Die dritte von drei Zeilen. '@ C:\PS> $a -split "^\d", 0, "multiline" Die erste Zeile. Die zweite Zeile. Die dritte von drei Zeilen. In der folgenden Anweisung wird der -split-Operator mit der Option "SimpleMatch" angewiesen, das Punkt-Trennzeichen (.) buchstäblich zu interpretieren. Mit der Standardoption "RegexMatch" wird der in Anführungszeichen eingeschlossene Punkt (".") als Übereinstimmung mit jedem Zeichen außer einem Zeilenwechselzeichen interpretiert. Daher gibt die split-Anweisung für jedes Zeichen mit Ausnahme des Zeilenwechsel- zeichens eine Leerzeile zurück. Die 0 stellt den Wert zum Zurückgeben aller Werte des Max-substrings-Parameters dar. Sie können Optionen wie "SimpleMatch" nur verwenden, wenn der Max-substrings-Wert angegeben wird. C:\PS> "Dies.ist.ein.Test" -split ".", 0, "simplematch" Dies ist ein Test Die folgende Anweisung teilt die Zeichenfolge bei einem von zwei Trennzeichen, abhängig vom Wert einer Variablen. C:\PS> $i = 1 C:\PS> $c = "Nachname, Vorname; Adresse, Ort, Land, PLZ" C:\PS> $c -split {if ($i -lt 1) {$_ -eq ","} else {$_ -eq ";"}} Nachname, Vorname Adresse, Ort, Land, PLZ Die folgenden split-Anweisungen teilen eine XML-Datei zuerst bei der spitzen Klammer und dann beim Semikolon. Das Ergebnis ist eine lesbare Version der XML-Datei. C:\PS> get-process powershell | export-clixml ps.xml C:\PS> $x = import-clixml ps.xml C:\PS> $x = $x -split "<" C:\PS> $x = $x -split ";" Um das Ergebnis anzuzeigen, geben Sie "$x" ein. C:\PS> $x @{__NounName=Process Name=powershell Handles=428 VM=150081536 WS=34840576 PM=36253696 ... SIEHE AUCH Split-Path about_Operators about_Comparison_Operators about_Join