比较对象并包含未在输出中进行比较的属性

YEM*_*slf 1 csv powershell compareobject

我正在使用Compare-Objectcmdlet比较来自不同来源(不同列/属性名称)的两个 CSV 文件。如何在输出中包含任一 CSV 文件中的属性而不将它们包含在比较中?

CSV 数据示例

用户1.csv

电子邮件地址,姓名,侧面
luke@sw.com,Luke,light

用户2.csv

电子邮件地址、受雇者、爱好
lando@sw.com,5/2/17,Sabacc

以下为我提供了一个包含电子邮件地址和侧面指示符的列,但是在比较中如何获取$Users1.name$Users2.hiredate不使用它们?

$Users1 = Import-Csv users1.csv
$Users2 = Import-Csv users2.csv

Compare-Object $Users1 $Users2 -Property "E-mail-Address"
Run Code Online (Sandbox Code Playgroud)

我想要类似的输出:

电子邮件地址 | 侧面指示器 | 姓名 | 雇用日期
---------------|------------------------------|------|---------
luke@sw.com | <= | 卢克 |
lando@sw.com | => | | 5/2/17

Mat*_*sen 5

添加PassThru参数以Compare-Object返回所有属性,然后用于Select-Object抓取namehiredate属性:

Compare-Object $users1 $users2 -Property e-mail-address -PassThru|Select-Object e-mail-address,SideIndicator,name,hiredate
Run Code Online (Sandbox Code Playgroud)