2011-07-05 48 views
3

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

回答

13

這種方式尚未提及:

"$($myvar)frank" 

而且這樣的:

"${myvar}frank" 
+0

剛因爲「$ {myvar} frank」是IMO最清潔的 –

1

另外一個選擇是通過格式操作:

"{0}world" -f $myvar 
1

另一種選擇是雙引號下面的字符串:

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

這看起來有些不合適,但作爲另一種選擇,您可以添加一個空格和一個退格:

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

另一個選擇是包裝在$()的變量表達式:

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