我有一组自定义对象,共有3个属性。
PS> $aOutput | select -first 10 | ft -auto
MifProblem FileCreationTime Client
---------- ---------------- ------
dataldr.box 12/2/2013 9:45:50 AM UAPURO1-NURSE1
DeltaMismatch 11/25/2013 7:01:37 AM UAPISTRAINING3
DeltaMismatch 11/23/2013 2:52:21 AM PICASO-2123
DeltaMismatch 11/24/2013 7:16:40 AM JADE05
DeltaMismatch 11/29/2013 8:21:10 AM JADE05
DeltaMismatch 11/19/2013 6:31:09 AM JADE05
DeltaMismatch 12/1/2013 5:25:41 AM JADE05
DeltaMismatch 11/20/2013 5:40:33 AM JADE05
DeltaMismatch 11/18/2013 8:05:43 AM JADE05
DeltaMismatch 11/21/2013 8:30:45 AM JADE05
我正在试图找出如何通过客户端对此数组进行分组,并计算所有MifProblem和最新的FileCreationtime。
以下是我希望根据上面的数组看到的输出:
Client MifProblems LatestFileCreationTime
------ ----------- ----------------------
UAPURO1-NURSE1 1 12/2/2013 9:45:50 AM
UAPISTRAININ3 1 11/25/2013 7:01:37 AM
PICASO-2123 1 11/23/2013 2:52:21 AM
JADE05 7 12/1/2013 5:25:41 AM
答案 0 :(得分:5)
尝试一下:
$aOutput | group Client |
select Count,Name,@{n='Client';e={$_.Group | sort FileCreationTime | select -l 1 -exp FileCreationTime }}
答案 1 :(得分:0)
一种方法是使用哈希表作为累加器 (未经测试,需要V3)
$MIFProblem_ht = @{}
$LastCreate_ht = @{}
$aOutput |
foreach {
$MIFProblem_ht[$_.client]++
if ($_.FileCreationTime -gt $LastCreate_ht[$_.client])
{$LastCreate_ht[$_.client] = $_.FileCreationTime}
}
$MIFProblem_ht.keys |
foreach { [PSCustomObject]@{
Client = $_
MifProblems = $MIFProblem_ht[$_]
LastFileCreationTime = $LasCreate_ht[$_]
}