Arrays 将注册表项对象显示名称放入数组并对其排序

Arrays 将注册表项对象显示名称放入数组并对其排序,arrays,powershell,Arrays,Powershell,我计划: 从2个注册表项查询所有可用软件 将结果放入一个数组中 按字母顺序对所有对象进行排序 默认情况下,通常会对第一个数组和第二个数组中的对象进行排序。但是,我希望将排序合并起来,以同时从两者接收字母顺序的输出 有什么建议吗 $Software = @() $regKeys = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows

我计划:

  • 从2个注册表项查询所有可用软件
  • 将结果放入一个数组中
  • 按字母顺序对所有对象进行排序
  • 默认情况下,通常会对第一个数组和第二个数组中的对象进行排序。但是,我希望将排序合并起来,以同时从两者接收字母顺序的输出

    有什么建议吗

    $Software = @()
    
    $regKeys = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
    foreach ($key in $regKeys) {
        #Write-Host $key -ForegroundColor Yellow
    
        Get-ItemProperty $key | 
            Where-Object { $_.DisplayName } |       
            Select-Object DisplayName |
            Write-Output $SoftwareObject.DisplayName
            $Software += $SoftwareObject
    }
    
    #Sort-Object -Property DisplayName |
    

    为什么这么复杂?只需查询您要查找的内容并对其进行排序

    $regKeys = 
    'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*', 
    'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
    
    Get-ItemProperty -Path $regKeys | 
        Where-Object { $_.DisplayName } |
            Sort-Object -Property DisplayName |
                Select-Object -Property DisplayName
    

    我计划将安装的软件数据库与第二个数据库进行比较。第二个将包括我曾经使用/玩过的所有软件和游戏。脚本将检查系统驱动器上的软件配置文件或保存游戏是否比备份驱动器上的更新。如果是这样,脚本将复制并覆盖备份驱动器上的文件。对于我第一个编写的powershell脚本来说似乎有点复杂。嗯。。。我不知道你为什么告诉我这些我的代码建议是否符合您的期望?我建议你一步一步走。从小处做起,随着时间的推移,每一步都在成长。我们都去过一次。您的代码在
    写入输出
    行产生错误。你没提那件事。您是否已在实际代码中对其进行了修复,或者这就是您要问的问题?//如果这个错误是你的问题。。。请在你的问题中加上这个。