.net 在PowerShell不工作的情况下写入文件

.net 在PowerShell不工作的情况下写入文件,.net,powershell,writetofile,.net,Powershell,Writetofile,我正在尝试将以下结果写入文件: $installedPrograms = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate 而且根本不起作用。我试过使用: $installedPrograms >> "installedP

我正在尝试将以下结果写入文件:

$installedPrograms = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
而且根本不起作用。我试过使用:

$installedPrograms >> "installedProgram.txt"


以上这些都不起作用……

在csv中可能更好

$installedPrograms = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
$installedPrograms | export-csv installedPrograms.csv -notypeinformation

发生了什么事?您是否尝试过将
$installedPrograms
打印到控制台?它看起来正确吗?打印到控制台很好,只是不打印到TXT文件。我认为这可能是因为字符串中的制表符而不是空格。
$installedPrograms | Out string | Out File installedPrograms.txt
,但我建议导出到csv文件,作为@Narkael
“$installedPrograms”
是与您尝试执行的操作相当的控制台。PowerShell不知道如何将数组转换为有意义的字符串,这就是为什么您最终将一无所获感谢您的答案!谢谢,它在CSV文件中工作!但由于某些原因,执行
if($installedPrograms.Contains(“程序名”){do something}else{dosomething else}
是不起作用的。但我知道它包含程序名…请尝试
if($installedPrograms-match“nameofProgram”){dosomething}
$stream = [System.IO.StreamWriter] "installedPrograms.txt"
1..10000|%
{
    $stream.WriteLine($installedPrograms)
}
$stream.Close();
$installedPrograms = Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
$installedPrograms | export-csv installedPrograms.csv -notypeinformation