私は、レジストリから追加/削除プログラムのリストを取得するにはPowerShellを使用して次のコードを実行します。PowerShellのコマンド出力に改行を追加するにはどうすればよいですか?
Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
| ForEach-Object -Process { Write-Output $_.GetValue("DisplayName") } `
| Out-File addrem.txt
私はリストには、各プログラムごとに改行で区切られたことにしたいです。私が試した:
Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
| ForEach-Object -Process { Write-Output $_.GetValue("DisplayName") `n } `
| out-file test.txt
Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
| ForEach-Object {$_.GetValue("DisplayName") } `
| Write-Host -Separator `n
Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
| ForEach-Object -Process { $_.GetValue("DisplayName") } `
| foreach($_) { echo $_ `n }
しかし、すべての結果を奇妙なフォーマットにする場合、各行ときに出力した後、コンソールに、そして3つの平方文字で出力をファイルに。私はFormat-List
とFormat-Table
とFormat-Wide
を試してみました。もともと、私はこれがうまくいくと思った:
Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
| ForEach-Object -Process { "$_.GetValue("DisplayName") `n" }
しかし、それは私にエラーを与えた。
PS> $nl = [Environment]::NewLine
PS> gci hklm:\software\microsoft\windows\currentversion\uninstall |
ForEach { $_.GetValue("DisplayName") } | Where {$_} | Sort |
Foreach {"$_$nl"} | Out-File addrem.txt -Enc ascii
それは私のaddrem.txtファイルに次のテキストが得られます:
Adobe AIR
Adobe Flash Player 10 ActiveX
...
注:
これは実際に働いた。しかし、他の値、つまり$ _。GetValue( 'InstallDate')が追加されている場合、それは崩れます。それは元の質問を成し遂げますが、助けに感謝します。 – mike
私はおそらくもっと良いと思う以下の代替回答を追加しました:) – Jaykul
素晴らしいです。 'とnot the 'を使用することに注意してください。私のキーボード(US-English Qwertyレイアウト)では、1の左側にあります。 –