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

时间:2019-01-29 06:34:16

标签: powershell

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

$myvariable = "World"
Write-Host "Hello $myvariable" 

上面的代码工作正常,写上“ Hello World”

但是,如果字符串中的字符跟随变量部分而形成合法的变量名称,则由于歧义而无法解析

$myvariable = "World"
Write-Host "Hello $myvariableimmediately continuing" 

问题

我知道这应该行不通,但是尽管进行了谷歌搜索,但我找不到这样的例子。我想念的语法是什么?

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:5)

如果要将连续文本添加到变量中,可以这样操作:

Write-Host "Hello $($myvariable)immediately continuing"
  

Hello World立即继续

如果您的对象是多值的并且您只想写一个值,则$($variable)的构造也很有用。

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

括号的运算方式与数学运算基本相同-首先计算内部表达式,然后将结果与语句的其余部分一起解析。