在 PowerShell 中連線字串
-
在 PowerShell 中使用
+
運算子連線字串 - 在 PowerShell 中使用分隔符連線字串
- 在 PowerShell 中連線字串和整數
- 在 PowerShell 中使用字串替換連線字串
-
在 PowerShell 中使用
-f
運算子連線字串 -
在 PowerShell 中使用
-join
運算子連線字串 -
在 PowerShell 中使用 String Builder 和
append()
函式連線字串 -
在 PowerShell 中使用
concat()
函式連線字串
在 PowerShell 中,我們通過多種方式實現字串連線;然而,雖然 PowerShell 有它自己的內建 concat()
函式(我們也將在後面討論),有更直接的方法來連線各種字串變數。
在列舉所有字串連線方法之前,最好先宣告一些我們將用作示例的字串變數。
$str1 = "First"
$str2 = "Second"
$str3 = "Third"
以下是在 PowerShell 中連線字串的所有可能方法。
在 PowerShell 中使用 +
運算子連線字串
連線字串的最基本方法是使用 +
運算子。如果兩個變數都是字串變數,則連線僅適用於 +
運算子。如果 +
運算子用於兩個或多個整數型別變數,指令碼將以數學方式處理表示式。
示例程式碼:
$concatString = $str1 + $str2 + $str3
Write-Output $concatString
輸出:
FirstSecondThird
在 PowerShell 中使用分隔符連線字串
我們不僅必須使用 +
運算子來連線字串,還可以使用逗號 (,
) 等分隔符。請記住用雙引號 ""
將你的字串變數括起來,否則該變數會將你分隔的字串值解釋為列表屬性。
示例程式碼:
$concatString = "$str1 , $str2 , $str3"
Write-Output $concatString
輸出:
First , Second , Third
另外,請記住,這不僅適用於逗號。用雙引號括起你的字串值使你的字串變數成為文字表示式。所見即所得(所見即所得。)
示例程式碼:
$concatString = "Who came in $str1 , $str2 , and $str3 Place?"
Write-Output $concatString
輸出:
Who came in First , Second, and Third Place?
在 PowerShell 中連線字串和整數
如果我們嘗試將字串與整數連線起來,則會發生無效型別錯誤。在下面的示例中,新變數 $concatString
將採用 $int1
變數的型別作為其資料型別,即整數。發生這種情況是因為在表示式 $int1 + $str1
中首先呼叫了 $int1
。
示例程式碼:
$int1 = 0
$concatString = $int1 + $str1 #int variable before string variable
Write-Output $concatString
輸出:
Cannot convert value "First" to type "System.Int32". Error: "Input string was not in a correct format."
At line:3 char:1
+ $concatString = $int1 + $str1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvalidCastFromStringToInteger
如果我們將字串變數 $str1
放在表示式的最前面,連線將成功,$int1
將自動轉換為字串值。
示例程式碼:
$int1 = 0
$concatString = $str1 + $int1 #str variable before int variable
Write-Output $concatString
輸出:
First0
在 PowerShell 中使用字串替換連線字串
或者,我們可以使用字串替換執行另一種連線方式。當連線具有不同資料型別的字串時,此方法也將起作用。
示例程式碼:
$int1 = 0
$concatString = "$($int1) , $($str2)"
Write-Output $concatString
輸出:
0 , Second
在 PowerShell 中使用 -f
運算子連線字串
連線字串的另一種方法是使用 -f
運算子。-f
運算子使用傳遞字串變數作為預構建字串值的引數。
示例程式碼:
$concatString = "{0}.{1}.{2}." -f $str1,$str2,$str3
Write-Output $concatString
輸出:
First.Second.Third
在 PowerShell 中使用 -join
運算子連線字串
-join 運算子與分隔符的作用類似,因為我們需要傳入一個字串分隔符作為引數。
示例程式碼:
$concatString = $str1,$str2,$str3 -join "!"
Write-Output $concatString
輸出:
First!Second!Third
在 PowerShell 中使用 String Builder 和 append()
函式連線字串
字串構建器是連線字串的複雜方法之一,因為我們需要呼叫一個單獨的物件型別 System.Text.StringBuilder
來啟動這個過程。然後該物件使用 append()
函式連線字串,然後使用 ToString()
函式將新物件轉換回字串值。
示例程式碼:
$concatString = New-Object -TypeName System.Text.StringBuilder
$null = $concatString.Append($str1)
$null = $concatString.Append($str2)
$null = $concatString.Append($str3)
$concatString = $concatString.ToString()
Write-Output $concatString
輸出:
FirstSecondThird
在 PowerShell 中使用 concat()
函式連線字串
最後,我們有 PowerShell 自己的 concat()
函式。
示例程式碼:
$concatString = [System.String]::Concat($str1,".",$str2,".",$str3)
Write-Output $concatString
輸出:
First.Second.Third
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn