5

次のコードを実行する場合:

  $txt = Get-Content file1.txt

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

   $a

すべての新しい行がファイルの内容から削除されますが、実行中です

$txt

新しい行を削除せずにファイルを印刷します。

here-stringを使用して希望どおりに機能させる方法はありますか?

ありがとう!

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 に答える