如何在PowerShell中连接字符串和变量?

49 浏览
0 Comments

如何在PowerShell中连接字符串和变量?

假设我有下面的代码段:

$assoc = New-Object PSObject -Property @{
    Id = 42
    Name = "Slim Shady"
    Owner = "Eminem"
}
Write-Host $assoc.Id + "  -  "  + $assoc.Name + "  -  " + $assoc.Owner

我希望这个代码段显示:

42 - Slim Shady - Eminem

但实际上它显示为:

42 + - + Slim Shady + - + Eminem

这让我想到加号运算符不适合用来连接字符串和变量。

你应该如何用PowerShell解决这个问题?

admin 更改状态以发布 2023年5月20日
0
0 Comments

单引号和双引号之间有所不同。(我使用的是PowerShell 4).

你可以这样做(如Benjamin所说的):

$name = 'Slim Shady'
Write-Host 'My name is'$name
-> My name is Slim Shady

或者你可以这样做:

$name = 'Slim Shady'
Write-Host "My name is $name"
-> My name is Slim Shady

单引号用于字面意义,输出与此完全相同的字符串。
双引号用于当你需要进行一些预处理(如变量、特殊字符等)。

所以:

$name = "Marshall Bruce Mathers III"
Write-Host "$name"
-> Marshall Bruce Mathers III

而:

$name = "Marshall Bruce Mathers III"
Write-Host '$name'
-> $name

(我发现如何:转义字符、分隔符和引号是一个很好的参考)。

0
0 Comments

Write-Host "$($assoc.Id) - $($assoc.Name) - $($assoc.Owner)"

请参阅Windows PowerShell 语言规范版本 3.0,第34页的子表达式扩展。

0