我想比较两个csv文件中的值,并返回source 2中与source 1中的条目不匹配的任何条目,同时忽略任何重复的条目。下面是我的尝试,但它没有返回所有条目。让此脚本执行所需操作的最佳方法是什么?
$AD = Import-CSV -Path "source1.csv"
$Student = Import-CSV -Path "source2.csv"
$AD |OuterJoin-Object $Student -on UserPrincipalName | Export-CSV -Path "Path.csv"
Source 1和Source 2 csv包含“Name”、“UserPrincipalName”和“TeamDesc”列。我希望使用这些列来匹配条目。理想情况下,输入/输出如下所示:
Source1.csv
| TeamDesc | UserPrincipalName | Name |
|:---------|:--------------------|:------------|
| Team 1 | student1@domain.com | john smith |
| Team 1 | student2@domain.com | nancy drew |
| Team 2 | student3@domain.com | harvey dent |
Source2.csv
| TeamDesc | UserPrincipalName | Name |
|:---------|:--------------------|:------------|
| Team 1 | student1@domain.com | john smith |
| Team 2 | student3@domain.com | harvey dent |
Export.csv
| TeamDesc | UserPrincipalName | Name |
|:---------|:--------------------|:-----------|
| Team 1 | student2@domain.com | nancy drew |
2条答案
按热度按时间aydmsdu91#
不确定如何使用
OuterJoin-Object
。我假设您希望这样做:如果您想排除来自
source2.csv
的可能重复项,可以使用以下命令:现在看一下您经过编辑的答案,它提供了预期的输出,您实际想要的似乎是:
jjjwad0x2#
第一个
请注意,UserPrincipalName有两个值,一个来自左表,另一个来自右表(空)。这将显示缺少信息的一侧。您还可以使用
-Name
参数进一步区分属性,例如:或仅左侧属性: