如何在PowerShell中连接字符串和变量?
如何在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日
单引号和双引号之间有所不同。(我使用的是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
(我发现如何:转义字符、分隔符和引号是一个很好的参考)。
Write-Host "$($assoc.Id) - $($assoc.Name) - $($assoc.Owner)"
请参阅Windows PowerShell 语言规范版本 3.0,第34页的子表达式扩展。