如果我错过了社交规范,请先在 stackoverflow 上发帖,请提前道歉。
我在 PowerShell 中有一个数组,其中包含数千个对象。每个对象的标准内容都具有用户名、登录时间、他们登录的计算机等属性。然后我从第一个数组中分离出少量对象,其中的用户名以 A 开头:
$Array2 = $Array1 | where-object Username -like '*\a*'
这按预期工作。
我想构建第三个数组,它只包含 $Array1 中不在 $Array2 中的对象。或者换句话说,一个只有用户名不以 A 开头的用户的数组。这似乎是要走的路:
$Array3 = compare-object $Array1 $Array2 | select-object -expandproperty InputObject
期待:
$Array3 | where-object Username -like '*\a*'
没有返回任何结果
我得到的是很多结果。奇怪的是,如果我查看每个数组的 .count ,数学就可以解决。Array1 减去 Array2 等于 Array3。所以它正在删除正确数量的对象,而不是预期的对象。我在这里做错了什么?由于我正在从我正在比较的确切数组中提取数据,因此我想不出任何其他标准,它将搜索会返回意外匹配的任何其他标准。我还尝试在比较之前按相同的属性对每个数组进行排序,因为我正在掌握但正如预期的那样并没有解决它。
提前致谢!