具體可參考 PowerShell_ISE的幫助文件:
-Join(一元聯接運算符):
一元聯接運算符 (-join <string[]>) 的優先級高於逗號。因此,如果向一元聯接運算符提交逗號分隔的字符串列表,則只有第一個字符串(第一個逗號之前的部分)才會提交給聯接運算符。
若要使用一元聯接運算符,請將字符串用圓括號括起,或將字符串存儲在變量中,然后提交該變量以進行聯接。
例如:
-join "a", "b", "c"
返回結果:
a
b
c
-join ("a", "b", "c")
返回結果:
abc
$z = "a", "b", "c"
-join $z
返回結果:
abc
"Windows", "PowerShell", "2.0" -join " " #返回結果:Windows PowerShell 2.0
$a = "Windows", "PowerShell", "2.0"
-join $a #返回結果:WindowsPowerShell2.0
$a -join ";" #返回結果:Windows;PowerShell;2.0
$b='@
a
b
c
@'
(-split $b) -join "" #返回結果:abc
-Split:(-cSplit 區分大小寫)
一元拆分運算符 (-split <string>) 的優先級高於逗號。因此,如果向一元拆分運算符提交逗號分隔的字符串列表,將只拆分第一個字符串(第一個逗號之前的部分)。
要拆分多個字符串,請使用二元拆分運算符 (<string> -split <delimiter>)。可將所有字符串都括在圓括號內,或在變量中存儲這些字符串,然后向拆分運算符提交該變量。
示例:
-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
$c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune"
$c -split ",", 5 #使用逗號為分隔符,一共最多返回5行,剩下的會都在最后一行顯示
#返回結果:
Mercury
Venus
Earth
Mars
Jupiter,Saturn,Uranus,Neptune
$c -split {$_ -eq "e" -or $_ -eq "p"} #使用 e 或者 p 為分隔符
#返回結果:
M
rcury,V
nus,
arth,Mars,Ju
it
r,Saturn,Uranus,N
tun
"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[et]' #使用e 或者 t為分隔符
#返回結果:
M
rcury,V
nus,
ar
h,Mars,Jupi
r,Sa
urn,Uranus,N
p
un
"a,b,c,d,e,f,g,h" -split ",", 3 #使用逗號拆分為3個子字符串
#返回結果:
a
b
c,d,e,f,g,h
"a,b,c,d", "e,f,g,h" -split ",", 3 #將兩個字符串分別拆分為3個子字符串
#返回結果:
a
b
c,d
e
f
g,h
$a = @'
1The first line.
2The second line.
3The third of three lines.
'@
$a -split "^\d", 0, "multiline" #按第一個數字拆分$a中的每一行。
該語句使用 Multiline 選項來識別每一行和每一個字符串的開頭。
0 值表示 Max-substrings 參數的"全部返回"值。僅當指定 Max-substrings 值時才能使用如 Multiline 等選項。
使用 Multiline 模式可識別行和字符串的開頭和結尾。僅當與 RegexMatch 一起使用時有效。默認設置為 Singleline,使用 Singleline 模式只識別字符串的開頭和結尾
#返回結果:
The first line.
The second line.
The third of three lines.
