当合法变量字符跟随字符串中的变量时,如何创建PowerShell字符串插值?

当合法变量字符跟随字符串中的变量时,如何创建PowerShell字符串插值?,powershell,Powershell,我尝试在PowerShell中使用字符串插值: $myvariable = "World" Write-Host "Hello $myvariable" 上面的代码运行良好,编写了Hello World 但是,如果字符串中变量部分后面的字符构成了合法的变量名,则无法对其进行解析,因为存在歧义 $myvariable = "World" Write-Host "Hello $myvariableimmediately continuing" 问题: 我明白这是行不通的,但尽管谷歌搜索,我还

我尝试在PowerShell中使用字符串插值:

$myvariable = "World"
Write-Host "Hello $myvariable" 
上面的代码运行良好,编写了Hello World

但是,如果字符串中变量部分后面的字符构成了合法的变量名,则无法对其进行解析,因为存在歧义

$myvariable = "World"
Write-Host "Hello $myvariableimmediately continuing" 
问题:


我明白这是行不通的,但尽管谷歌搜索,我还是找不到这样的例子。我错过的语法是什么?

空格只是结束变量名的一种方式。可以使用括号精确定义字符串中变量的长度

$myvariable = "World"
Write-Host "Hello ${myvariable}immediately continuing" 

如果要在变量的文本上运行,可以这样做:

Write-Host "Hello $($myvariable)immediately continuing"
你好,马上继续

如果对象是多值的,并且只想写出一个值,$$变量构造也很有用

Write-host "My cat's name is $($cat.name) and he is $($cat.age) years old"

括号的操作方式与数学中的操作方式基本相同——首先计算括号内的表达式,然后用语句的其余部分解析结果

谢谢,稍微更正一下:我试着去发现,我经历过的不仅仅是空格,还有任何变量名中不符合法定字符的字符,比如.,/etcThanks,我用{}语法接受了答案,因为它看起来更短,但我也对你的答案投了更高的票。