Variables 变量扩展和转义字符
在PowerShell中,您可以展开字符串中的变量,如下所示: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
$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”在我看来是最干净的