Sie sind auf Seite 1von 7

THEMA

about_Split
KURZBESCHREIBUNG
Erklrt, 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 knnen die folgenden Elemente des
Teilungsvorgangs ndern:
-- Trennzeichen. Die Standardeinstellung sind Leerrume, Sie knnen
aber Zeichen, Zeichenfolgen, Muster oder Skriptblcke angeben, die das
Trennzeichen angeben.
-- Maximale Anzahl von Teilzeichenfolgen. Standardmig werden alle
Teilzeichenfolgen zurckgegeben. 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 fr 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. Schlieen Sie
nur die Parameterwerte ein. Die Werte mssen 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 knnen 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 grn"
rot
gelb
blau
grn
<Delimiter>
Die Zeichen, die das Ende einer Teilzeichenfolge
identifizieren. Das Standardtrennzeichen ist ein Leerraum,
einschlielich 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 zurckzugebenden Teilzeichenfolgen
an. Standardmig werden alle vom Trennzeichen geteilten
Teilzeichenfolgen zurckgegeben. Wenn mehr Teilzeichenfolgen
vorhanden sind, werden diese in der abschlieenden
Teilzeichenfolge verkettet. Falls weniger Teilzeichenfolgen
vorhanden sind, werden alle Teilzeichenfolgen zurckgegeben.
Beim Wert 0 und bei negativen Werten werden alle
Teilzeichenfolgen zurckgegeben.
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 fr das Anwenden des Trennzeichens
angibt. Der Ausdruck muss "$true" oder "$false" ergeben.
Schlieen 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>
Schlieen Sie den Optionsnamen in Anfhrungszeichen ein.
Optionen sind nur dann gltig, wenn der <Max-substrings>-Para-
meter in der Anweisung verwendet wird.
Die Syntax fr 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 regulren
Ausdrcken 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"
gltig.
-- IgnorePatternWhitespace: Ignoriert Leerstellen ohne
Escapezeichen und mit dem Nummernzeichen (#) markierte
Kommentare. Nur mit "RegexMatch" gltig.
-- Mehrzeilig: Im Multiline-Modus werden Beginn und Ende
von Zeilen und Zeichenfolgen erkannt. Nur mit
"RegexMatch" gltig. Der Standardwert ist "Singleline".
-- Singleline: Im Singleline-Modus werden nur Beginn und
Ende von Zeichenfolgen erkannt. Nur mit "RegexMatch"
gltig. Der Standardwert ist "Singleline".
-- ExplicitCapture: Ignoriert nicht benannte Gruppen von
bereinstimmungen, sodass nur explizit erfasste Gruppen
in der Ergebnisliste zurckgegeben werden. Nur mit
"RegexMatch" gltig.
UNRE und BINRE TEILUNGSOPERATOREN
Der unre Teilungsoperator (-split <string>) hat Vorrang vor einem
Komma. Wenn Sie eine durch Kommas getrennte Liste von
Zeichenfolgen an den unren Teilungsoperator senden, wird daher
nur die erste Zeichenfolge (vor dem ersten Komma) geteilt.
Um mehrere Zeichenfolgen zu teilen, verwenden Sie den binren
Teilungsoperator (<string> -split <delimiter>). Schlieen 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 Leerrumen.
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 'e
r'
M
cury,Venus,Earth,Mars,Jupit
,Saturn,Uranus,Neptune
Die folgende Anweisung fhrt 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 beschrnkt 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 Beschrnkung 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 Zurckgeben aller Werte des
Max-substrings-Parameters dar. Sie knnen 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 (.)
buchstblich zu interpretieren.
Mit der Standardoption "RegexMatch" wird der in Anfhrungszeichen
eingeschlossene Punkt (".") als bereinstimmung mit jedem Zeichen
auer einem Zeilenwechselzeichen interpretiert. Daher gibt die
split-Anweisung fr jedes Zeichen mit Ausnahme des Zeilenwechsel-
zeichens eine Leerzeile zurck.
Die 0 stellt den Wert zum Zurckgeben aller Werte des
Max-substrings-Parameters dar. Sie knnen 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, abhngig 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