如果您不介意使用 linq/NET,这将列出两个列表中的用户:
$file1 = import-csv -Path "C:\ps\output\adusers.csv"
$file2 = import-csv -Path "C:\ps\output\users.csv"
[linq.enumerable]::intersect( [object[]]($file1.name), [object[]]($file2.name) ) |
Export-Csv -NoTypeInformation -Path "C:\ps\result\result.csv"
Linq 没有相反/反向相交的方法,但您可以使用通用集合中的SymmetricExceptWith。
下面的代码列出了出现在一个列表或另一个列表中但不是同时出现在两个列表中的用户:
$file1 = import-csv -Path "C:\ps\output\adusers.csv"
$file2 = import-csv -Path "C:\ps\output\users.csv"
$res = [Collections.Generic.HashSet[String]]( [string[]]($file1.name) )
$res.SymmetricExceptWith( [string[]]($file2.name) )
$res | Export-Csv -NoTypeInformation -Path "C:\ps\result\result.csv"
注意:此代码可能不适用于早期的 powershell 版本。