Powershell转义字符`(反引号)不转义字符串

时间:2015-11-07 16:29:20

标签: powershell escaping literals

我在PowerShell的字符串中添加新行时遇到了麻烦:

Get-ChildItem "C:\Users\matt\Desktop\CShell Install" |foreach {'<Component Id="'+$_.name+'" Guid="' +[guid]::NewGuid() + '">`r`n<File Id="'+$_.name+'" Source="$(var.CShell.TargetPath)"></File></Component>'}

如您所见,我想在

处出现换行符

``r`n

相反,它们是按字面打印的。

任何指针?

1 个答案:

答案 0 :(得分:7)

不要使用单引号,您希望PowerShell支持反引号(或者需要PowerShell解释的任何其他字符)。

"FirstLine`r`nSecondLine" prints
FirstLine
SecondLine

'"FirstLine`r`nSecondLine"' prints
"FirstLine`r`nSecondLine"