Variables 变量扩展和转义字符

Variables 变量扩展和转义字符,variables,powershell,Variables,Powershell,在PowerShell中,您可以展开字符串中的变量,如下所示: $myvar = "hello" $myvar1 = "$myvar`world" #without the `, powershell would look for a variable called $myvarworld Write-Host $myvar1 #prints helloworld $myvar3 = "$myvar`albert" Write-Host $myvar3 #prints hellolbert a

在PowerShell中,您可以展开字符串中的变量,如下所示:

$myvar = "hello"
$myvar1 = "$myvar`world" #without the `, powershell would look for a variable called $myvarworld
Write-Host $myvar1 #prints helloworld
$myvar3 = "$myvar`albert"
Write-Host $myvar3 #prints hellolbert as `a is an alert 
我遇到的问题是转义字符,如
n
r等,如下所示:

$myvar = "hello"
$myvar1 = "$myvar`world" #without the `, powershell would look for a variable called $myvarworld
Write-Host $myvar1 #prints helloworld
$myvar3 = "$myvar`albert"
Write-Host $myvar3 #prints hellolbert as `a is an alert 
此外,以下各项也不起作用:

$myvar2 = "$myvar`frank" #doesnt work
Write-Host $myvar2 #prints hellorank.
问题: 在使用自动变量扩展功能时,如何组合字符串而不用担心转义字符? 或者我只能这样做:

$myvar = "hello"
$myvar1 = "$myvar"+"world" #using +
Write-Host $myvar1
$myvar2 = "$myvar"+"frank" #using +

另一个选项是通过format操作符:

"{0}world" -f $myvar

另一个选项是双引号字符串:

$myvar = "Hello"
$myvar2 = @"
$myvar$("frank")
"@

这似乎有点笨拙,但作为另一种选择,您可以添加空格和退格:

$myvar = "hello"
$myvar1 = "$myvar `bworld"
$myvar1

这种方式尚未提及:

"$($myvar)frank"
这是:

"${myvar}frank"

另一种选择是将变量表达式包装为$():

就因为“${myvar}frank”在我看来是最干净的