sql-server - 将比较对象结果添加到差异数据集

标签 sql-server powershell diff

我有两个 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","<="

谢谢, 扎克

最佳答案

这应该为 $output 提供您正在寻找的值。

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

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

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

关于sql-server - 将比较对象结果添加到差异数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12498393/

相关文章:

windows - 如何在 Windows 中远程编辑文本

powershell - 使用 Powershell/curl 检查 http header 的问题

loops - Powershell遍历文件夹,在每个文件夹中创建文件

python - 使用 python 区分 XML 和 unicode

c# - sql 查询忽略所有具有空列的行

sql-server - 尝试创建新的SQL帐户时发生异常

git - 如何在 Visual Studio Code 中获得统一的 git diff?

svn - 谁能推荐一个用于颠覆的基于 Web 的预提交差异查看器?

c# - 从数据库转换时出现问题

asp.net - 总结历史正常运行时间数据