Powershell删除重复项并选择上次日期

时间:2018-04-16 12:39:53

标签: powershell unique

我有一个包含3个属性的PS对象: 状态 ID 开始时间

' ID'财产包含很多重复。对于每个唯一ID,我只想选择具有最新StartTime的ID。同样重要的是:我想保留所有属性。

我已经做了以下事情:

$UniqueList = $CompleteList | Sort-Object -Property ID -Unique

这会删除重复的ID,但我无法控制保留哪一个。我想我必须对StartTime进行排序,然后选择-First 1或其他东西,但我无法在我的代码中正确使用它。

2 个答案:

答案 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

这对您的对象有预期效果吗?