首页 > 解决方案 > PowerShell 比较两个多维数组以创建一个包含重复行的多维数组

问题描述

我在第一个 foreach 循环中生成了 $array1 = ["ID","Name","Brand","State","created_by","approved_by","date"] 然后两分钟后在第二个 foreach 循环中生成另一个是生成 $array2 = ["ID","Name","Brand","State","created_by","approved_by","date"]。现在做一个比较,如果 $array1 和 $array2 都包含一个 ID / Name ,使用这个重复来创建新的 $array3 - 并排除 $array1 中没有在 $array2 中再次出现的条目。

您如何进行 PowerShell 比较并仅包含两个数组中的重复行以创建第三个数组?

这是我正在使用的代码:##The first array

$exportObjectA=@() ForEach ($dataset.Tables[0].Rows 中的$row) {

    $ExciterObject = New-Object PSObject
    $ExciterObject | Add-Member -MemberType NoteProperty -Name "Date Created" -Value $row.created_date
    $ExciterObject | Add-Member -MemberType NoteProperty -Name "Location" -Value $row.Location 
    $ExciterObject | Add-Member -MemberType NoteProperty -Name "Exciter Name" -Value $row.exciter_name 
    $ExciterObject | Add-Member -MemberType NoteProperty -Name "Exciter ID" -Value $row.ExciterID
    $ExciterObject | Add-Member -MemberType NoteProperty -Name "Reason Down" -Value $row.ReasonDown
    $exportObjectA += $ExciterObject

    }

###第二个数组

$exportObjectB=@() ForEach ($dataset.Tables[0].Rows 中的$row) {

            $ExciterObject = New-Object PSObject
            $ExciterObject | Add-Member -MemberType NoteProperty -Name "Date Created" -Value $row.created_date
            $ExciterObject | Add-Member -MemberType NoteProperty -Name "Location" -Value $row.Location 
            $ExciterObject | Add-Member -MemberType NoteProperty -Name "Exciter Name" -Value $row.exciter_name 
            $ExciterObject | Add-Member -MemberType NoteProperty -Name "Exciter ID" -Value $row.ExciterID
            $ExciterObject | Add-Member -MemberType NoteProperty -Name "Reason Down" -Value $row.ReasonDown
            $exportObjectB += $ExciterObject

            }


$exportObjectA | ForEach-Object {
    if ($exportObjectB -contains $_) {
        Write-Host "`$exportObjectB contains the 
`$exportObjectA$row.exciter_name string [$_]"
    }

}

标签: arrayspowershellcompare

解决方案


推荐阅读