繁体   English   中英

变量扩展和转义字符

[英]Variable expansion and escaped characters

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

$myvar = "hello"
$myvar1 = "$myvar`world" #without the `, powershell would look for a variable called $myvarworld
Write-Host $myvar1 #prints helloworld

我遇到的问题是转义字符,例如n r 等,如下所示:

$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 +

这种方式还没有提到:

"$($myvar)frank"

和这个:

"${myvar}frank"

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

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

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

$myvar3 = "$($myvar)albert"
Write-Host $myvar3 

另一种选择是通过格式运算符:

"{0}world" -f $myvar

另一种选择是双引号的此处字符串:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM