2

我有两个 System.Data.DataSet 对象,我希望使用 Compare-Object Cmdlet 进行比较。我希望输出一个数据集,其中包含原始数据集的列,但只有差异和一个附加列,其中包含在 Compare-Object cmdlet 中计算的 SideIndicator 值。

假设我有这两个 CSV:

#C:\test.csv
"firstName","lastName"
"Bruce","Wayne"
"Clark","Kent"

#C:\test2.csv
"firstName","lastName"
"Peter","Parker"
"Clark","Kent"
"Jean","Grey"

我想使用以下结果:

compare-object (Get-Content C:\test.csv) (Get-Content C:\test2.csv)

填充格式如下的数据集:

#desiredResult
"firstName","lastName","SideIndicator"
"Peter","Parker","=>"
"Jean","Grey","=>"
"Bruce","Wayne","<="

谢谢,扎克

4

1 回答 1

3

这应该给出$output您正在寻找的价值。

$output = Compare-Object $(Import-Csv c:\test.csv) $(Import-Csv c:\test2.csv) -Property FirstName, Lastname

当您使用Get-Content文件时,它将每一行作为数组的一个对象。这将firstnameandlastname视为单行,它存在于两个数组中。因此,它不会与 the 返回,compare-object因为它在两者中。

当您使用Import-Csv它时,它将第一行作为标题,并将它们作为数组的属性。之后的每一行都根据它在.csv. 这意味着compare-object可以将它们与不同的数组进行比较,并将属性保持到输出。

于 2012-09-19T16:19:24.427 回答