我需要比较 2 个 CSV 文件,并根据 2 个标头(SiteName、PrimarySMTPAddress)输出较大的文件中包含的差异,而较小的文件中不存在这些差异。
目前,我可以使用以下方法执行此操作:
#Importing CSV
$File1 = Import-Csv -Path "C:\Data1-Large.csv"
#Importing CSV
$File2 = Import-Csv -Path "Data2.csv"
#Compare both CSV files - column PrimarySMTPAddress
$Results = Compare-Object $File1 $File2 -Property PrimarySMTPAddress -IncludeEqual
$Array = @()
Foreach($R in $Results)
{
If( $R.sideindicator -eq "==" )
{
$Object = [pscustomobject][ordered] @{
PrimarySMTPAddress = $R.PrimarySMTPAddress
"Compare indicator" = $R.sideindicator
}
$Array += $Object
}
}
#Count users in both files
($Array | sort-object username | Select-Object * -Unique).count
#Display results in console
$Array
上面的问题是 - 它将显示大 CSV 和小 CSV 之间的差异 - 它会吐出大 CSV 中的所有主 SMTP 地址。
我需要让输出在第二列站点名称上进行过滤,以便仅枚举与其他 CSV 匹配的站点名称(大 CSV 包含 12000 行,而小 CSV 包含 2500 行)。过滤Compare-Object
不一样,我看不到如何Where-Object
像往常一样使用过滤。
我是 Arrays 的新手,所以,如果有任何帮助,我将不胜感激。
提前致谢。