我有一个包含3个属性的PS对象: 状态 ID 开始时间
' ID'财产包含很多重复。对于每个唯一ID,我只想选择具有最新StartTime的ID。同样重要的是:我想保留所有属性。
我已经做了以下事情:
$UniqueList = $CompleteList | Sort-Object -Property ID -Unique
这会删除重复的ID,但我无法控制保留哪一个。我想我必须对StartTime进行排序,然后选择-First 1或其他东西,但我无法在我的代码中正确使用它。
答案 0 :(得分:2)
$UniqueList = $completelist | Group-Object -Property ID | ForEach-Object{$_.Group | Sort-Object -Property StartTime -Descending | Select-Object -First 1}
首先按ID执行Group-Object,按每个组中的StartTime对它们进行排序,然后在每个组中选择-First 1给出结果。
答案 1 :(得分:1)
为什么不先在时间属性上添加排序?
$UniqueList = $CompleteList | Sort-Object -Property starttime -Descending | sort-Object -Property ID -Unique
这对您的对象有预期效果吗?