【发布时间】:2018-06-14 14:36:22
【问题描述】:
我正在尝试查找唯一值/合并两个 CSV。但这似乎不起作用。
由于某种原因,代码不返回唯一值(不合并)。输出始终是第一个 CSV 的值。在这种情况下,它返回 $Users1 的值。如果我将其更改为 $UserUnique = $Users2 + $user1,它将返回 $User2 的值
这是我的代码:
$Users1 = Import-Csv -Path \\share\user\Desktop\disabledusers.csv
$Users2 = Import-Csv -Path \\share\user\Desktop\disabledusers2.csv
$UserUnique = $Users1 + $user2
$UserUnique | Select-Object -Property * -Unique
有什么想法吗?
提前致谢。
我的参考链接 - How to merge two csv files in powershell with same headers and discard duplicate rows
根据要求提供更多信息:请在下面找到 CSV 文件和预期结果。
$Users1
名称 lastlogondate 密码lastset SAMAccountName 姓名1 20/03/2017 12:54 05/09/2013 13:43 Sam1 名称2 18/08/2016 10:31 04/03/2015 09:42 Sam2 名称3 11/09/2016 17:48 17/03/2015 12:02 Sam3 名称4 06/09/2016 08:46 06/10/2015 09:44 Sam4 名称5 07/09/2016 08:46 07/10/2015 09:44 Sam5 名称6 08/09/2016 08:46 08/10/2015 09:44 Sam6$Uers2
名称 lastlogondate 密码lastset SAMAccountName 姓名1 20/03/2017 12:54 05/09/2013 13:43 Sam1 名称2 18/08/2016 10:31 04/03/2015 09:42 Sam2 名称3 11/09/2016 17:48 17/03/2015 12:02 Sam3 名称4 06/09/2016 08:46 06/10/2015 09:44 Sam4 名称7 09/09/2016 08:46 09/10/2015 09:44 Sam7 名称8 2016 年 10 月 9 日 08:46 2015 年 10 月 10 日 09:44 Sam8 名称9 2016 年 11 月 9 日 08:46 2015 年 11 月 10 日 09:44 Sam9 名称10 12/09/2016 08:46 12/10/2015 09:44 Sam10预期结果
名称 lastlogondate 密码lastset SAMAccountName 姓名1 20/03/2017 12:54 05/09/2013 13:43 Sam1 名称2 18/08/2016 10:31 04/03/2015 09:42 Sam2 名称3 11/09/2016 17:48 17/03/2015 12:02 Sam3 名称4 06/09/2016 08:46 06/10/2015 09:44 Sam4 名称5 07/09/2016 08:46 07/10/2015 09:44 Sam5 名称6 08/09/2016 08:46 08/10/2015 09:44 Sam6 名称7 09/09/2016 08:46 09/10/2015 09:44 Sam7 名称8 2016 年 10 月 9 日 08:46 2015 年 10 月 10 日 09:44 Sam8 名称9 2016 年 11 月 9 日 08:46 2015 年 11 月 10 日 09:44 Sam9 名称10 12/09/2016 08:46 12/10/2015 09:44 Sam10【问题讨论】:
-
根据 mklement0,请参阅:stackoverflow.com/q/44428189/1701026。但是,如果您正在寻找一种在公共属性上加入表格的方法(请更清楚并显示使用
csv文件的一部分),您可能想尝试Join-Object并执行类似$UserUnique = $Users1 | Join $Users2 -On 'User'的操作(其中'User'是公共属性名称)