【发布时间】:2010-12-10 23:46:32
【问题描述】:
我使用 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 }
但是当输出到控制台时,所有这些都会导致奇怪的格式,并且当输出到文件时,每行后面都有三个方形字符。我尝试了Format-List、Format-Table 和Format-Wide,但没有成功。最初,我认为这样的事情会起作用:
Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
| ForEach-Object -Process { "$_.GetValue("DisplayName") `n" }
但这只是给了我一个错误。
【问题讨论】:
-
Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall ` | ForEach-Object -Process { "$($_.GetValue("DisplayName")) `n" }
标签: powershell newline