变量扩展和转义字符

Raj*_*Rao 7 variables powershell

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

$myvar = "hello"
$myvar1 = "$myvar`world" #without the `, powershell would look for a variable called $myvarworld
Write-Host $myvar1 #prints helloworld
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是像nr等转义字符,如下所示:

$myvar3 = "$myvar`albert"
Write-Host $myvar3 #prints hellolbert as `a is an alert 
Run Code Online (Sandbox Code Playgroud)

以下也不起作用:

$myvar2 = "$myvar`frank" #doesnt work
Write-Host $myvar2 #prints hellorank.
Run Code Online (Sandbox Code Playgroud)

问题:当我使用自动变量扩展功能时,如何在不担心转义字符的情况下组合字符串?或者我必须这样做:

$myvar = "hello"
$myvar1 = "$myvar"+"world" #using +
Write-Host $myvar1
$myvar2 = "$myvar"+"frank" #using +
Run Code Online (Sandbox Code Playgroud)

Rom*_*min 22

这种方式还没有提到:

"$($myvar)frank"
Run Code Online (Sandbox Code Playgroud)

还有这个:

"${myvar}frank"
Run Code Online (Sandbox Code Playgroud)

  • 仅因为“ $ {myvar} frank”是IMO最干净的 (2认同)