在 PowerShell 中連線字串

Marion Paul Kenneth Mendoza 2023年1月30日
  1. 在 PowerShell 中使用 + 運算子連線字串
  2. 在 PowerShell 中使用分隔符連線字串
  3. 在 PowerShell 中連線字串和整數
  4. 在 PowerShell 中使用字串替換連線字串
  5. 在 PowerShell 中使用 -f 運算子連線字串
  6. 在 PowerShell 中使用 -join 運算子連線字串
  7. 在 PowerShell 中使用 String Builder 和 append() 函式連線字串
  8. 在 PowerShell 中使用 concat() 函式連線字串
在 PowerShell 中連線字串

在 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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相關文章 - PowerShell String