5

运行以下代码时:

  $txt = Get-Content file1.txt

    $a = @"
     -- file start --
     $txt
     -- file end --
    "@

   $a

所有新行都从文件内容中删除,但只是运行

$txt

在不删除新行的情况下打印出文件。

知道如何使用这里的字符串让它按需要工作吗?

谢谢!

4

2 回答 2

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))
于 2012-10-25T19:00:42.243 回答
10

管道 $txt 到子表达式内的 Out-String。

$a = @"
    -- file start --
    $($txt | Out-String)
    -- file end --
"@
于 2012-10-25T19:10:25.400 回答