运行以下代码时:
$txt = Get-Content file1.txt
$a = @"
-- file start --
$txt
-- file end --
"@
$a
所有新行都会从文件内容中删除,但只是运行
$txt
打印出文件而不剥离新行。
任何想法如何使用here-string来使其工作?
谢谢!
答案 0 :(得分:12)
如果您将数组放入字符串中,则会在项目之间使用$OFS
(如果$OFS
为$null
的空格)进行展开。您可以使用
"$txt"
''+$txt
和其他一些人。您可以设置$OFS="`r`n"
,这会将它们所加入的空间更改为换行符。
您也可以将开头的Get-Content
更改为
$txt = Get-Content file1.txt | Out-String
$txt = [IO.File]::ReadAllText((Join-Path $pwd file1.txt))
答案 1 :(得分:8)
将$ Text文本传递给子表达式中的Put-String。
$a = @"
-- file start --
$($txt | Out-String)
-- file end --
"@