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

Compare-Object and include properties not being compared in output

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

CSV 数据示例

users1.csv

e-mail-address,name,side
luke@sw.com,Luke,light

users2.csv

e-mail-address,hiredate,hobbies
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"

我希望输出类似于:

e-mail-address | SideIndicator | name | hiredate
---------------|---------------|------|----------
luke@sw.com    | <=            | Luke |
lando@sw.com   | =>            |      | 5/2/17

添加PassThru参数拥有Compare-Objectreturn所有属性,然后使用Select-Object获取namehiredate属性:

Compare-Object $users1 $users2 -Property e-mail-address -PassThru|Select-Object e-mail-address,SideIndicator,name,hiredate