web-dev-qa-db-ja.com

PowerShellを使用してファイルにタブを書き込む

PowerShellで配列の一連の要素をエコーする必要がありますが、要素間にさまざまな区切り文字を提供するため、使用しています。

    Add-Content -Path $tempInputDir\testoutput.log -value ($($fields[0]) + "   "+
        $($fields[1])  + "    " + $($fields[2]) + " " + $($fields[3])    + "    "+
        $($fields[15]) + "    " + $($fields[17]))
}

タブとスペース文字を追加できるようにする必要があります。上のコードからわかるように、二重引用符の間に物理的にタブとスペースを追加することでこれを実行しましたが、これにより問題が発生することは間違いありません。

これらの文字をファイルにエコーする正しい方法は何ですか? 「使用できない」という箇所を読んだのですが、うまくいかないようです。

18
Andy Walker

二重引用符で囲まれた文字列のタブ文字には`tを使用できます。上記を単純化して次のこともできます。

"$($fields[0])   $($fields[1])   $($fields[2]) $($fields[3])  $($fields[15])  $($fields[17])" | Add-Content $tempInputDir\testoutput.log
50
Keith Hill

ノミネートされたフィールドをタブで結合するには:

[string]::join("`t", (0..3,15,17 | % {$fields[$_]}))
26
dan-gph