简体   繁体   中英

Variable expansion and escaped characters

In PowerShell, you can expand variables within strings as shown below:

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

The problem I am having is with escaped characters like n r etc, as shown below:

$myvar3 = "$myvar`albert"
Write-Host $myvar3 #prints hellolbert as `a is an alert 

also the following doesnt work:

$myvar2 = "$myvar`frank" #doesnt work
Write-Host $myvar2 #prints hellorank.

Question: How do I combine the strings without worrying about escaped characters when I am using the automatic variable expansion featurie? Or do I have to do it only this way:

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

This way is not yet mentioned:

"$($myvar)frank"

And this:

"${myvar}frank"

This seems kind of kludgy, but as another option, you can add a space and a backspace:

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

Yet another option is to wrap your variable expression in a $():

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

One other option is through the format operator:

"{0}world" -f $myvar

Another option is a double-quoted here-string:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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