在 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