(19)Powershell字符串合併運算符

    Powershell 提供了對字符串的合併運算符,鏈接運算符 -join 將一組字符串鏈接成單個字符串,子字符串按其在命令中出現的順序添加到生成的字符串中。
shell


鏈接運算符數組

    Powershell中字符串的鏈接運算符的語法以下:
ide

-Join <String[]>
<String[]> -Join <Delimiter>

    參數解釋。
spa

<String[]>xml

    要鏈接的子字符串數組,即要對哪些子字符串進行鏈接。
blog

<Delimiter>字符串

    指定放在被鏈接字符串之間的一個或多個字符。默認爲空字符串("")。須要注意的是,拆分運算符會在拆分後的字符串中去掉分隔符,而鏈接運算符會在鏈接後的字符串中插入指定的分隔符,拆分和合並是兩個相對的運算。
get


    須要注意的是, -Join <String[]> 格式稱爲一元鏈接運算符,它的優先級高於逗號。因此,若是向一元聯接運算符提交逗號分隔的字符串列表,則只有第一個字符串(第一個逗號以前的部分)纔會提交給聯接運算符。例如:string

PS C:\> -join "a","c","e"
a
c
e

    可是如果要使用一元聯接運算符,須要請將被鏈接的字符串用圓括號括起,或將被鏈接的字符串存儲在變量中,而後提交該變量以進行鏈接。例如:it

PS C:\> -join ("a","b","c")
abc
PS C:\> $x = "a","b","c"
PS C:\> -join $x
abc

     除了鏈接運算符 -join ,在 Powershell算術運算符 中講過,算術運算符 "+" 也具備字符串的鏈接功能,可是要求是第一個操做數必須是字符串,否會嘗試算術運算加的運算。例如:

PS C:\> "a"+"b"+"c"
abc

    在實際運用中,使用 "+" 進行字符串的鏈接很方便,也很直觀,也是使用頻率很高的字符串鏈接操做。


    下面再舉三個使用 -join 進行字符串鏈接的例子:

PS C:\> -join ("Windows","Powershell","5.0")
WindowsPowershell5.0
PS C:\> "Windows","Powershell","5.0" -join " "
Windows Powershell 5.0
PS C:\> $x = "Wind","sP","ershell"
PS C:\> $x -join "ow"
WindowsPowershell

    

    最後舉例說明,利用字符串的分隔運算符 -split 和鏈接運算符 -join 能夠將多行內容轉換到一行,例如:

PS C:\> $a = @'
>> a
>> b
>> c
>> '@
>>
PS C:\> (-split $a) -join " "
a b c

    上面語句中的$a = @''@ 被稱爲 here-string ,即會將兩個@ 之間的內容視爲一個字符串,這是 Powershell中的特殊運算符。而在實際使用中,xml 文件內容可能是多行的,利用此方法能夠從新聯接 XML 文件中已保存在 here-string 中的字符串



總結

    Powershell 中利用 -join 關鍵字對字符串進行鏈接操做,也能夠使用算術運算符 "+" 進行字符串的鏈接,可是前提是第一個操做數必須是字符串。鏈接和拆分是對立的運算,例如合併能夠使用建立指定的時間"+"指定名稱的文件名,而時間和指定名稱可能來自不一樣的地方。

相關文章
相關標籤/搜索