uruchomić poniższy kod za pomocą PowerShell uzyskać listę dodaj/usuń programy z rejestru:Jak dodać nowy wiersz do danych wyjściowych polecenia w PowerShell?
Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
| ForEach-Object -Process { Write-Output $_.GetValue("DisplayName") } `
| Out-File addrem.txt
Chcę lista być oddzielone znakami nowej linii na każdym programie. Próbowałem:
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 }
Ale wynik w formatowaniu dziwne, gdy wyjście do konsoli, a z trzech znaków kwadratowych po każdym wierszu, gdy wyjście do pliku. Próbowałem Format-List
, Format-Table
i Format-Wide
bez powodzenia. Początkowo myślałem, że coś takiego zadziała:
Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
| ForEach-Object -Process { "$_.GetValue("DisplayName") `n" }
Ale to tylko dało mi błąd.
To faktycznie zadziałało. Ale jeśli dodane zostaną jakiekolwiek inne wartości, tj. $ _. GetValue ("InstallDate"), to zaczyna działać. Spełnia jednak oryginalne pytanie, więc dzięki za pomoc. – mike
Dodałem alternatywną odpowiedź poniżej, która moim zdaniem jest prawdopodobnie lepsza :) – Jaykul
Działa świetnie. Uważaj, aby użyć "i nie". Na mojej klawiaturze (układ angielsko-angielski Qwerty) znajduje się na lewo od 1. –