-join 和 -split 用法


具體可參考 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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM