从Powershell中的每个对象组的数组中获取最新日期

时间:2013-06-10 13:47:39

标签: arrays datetime powershell greatest-n-per-group

我有一个数组 $ data

PS> $data
Datum                  User                   Computer                                      
-----                  ---------              --------                                      
10/06/2013 13:10:56    geb1@TESTDOMAIN.COM    DC1$                                          
10/06/2013 13:09:25    geb2@TESTDOMAIN.COM    DC2$                                          
10/06/2013 10:05:13    geb2@TESTDOMAIN.COM    DC2$                                          
7/06/2013 16:32:47     geb1@TESTDOMAIN.COM    DC1$    

我想从每台计算机的$ data数组中获取最新日期,如下所示:

PS> $result
Datum                  User                   Computer                                      
-----                  ---------              --------                                      
10/06/2013 13:10:56    geb1@TESTDOMAIN.COM    DC1$                                          
10/06/2013 13:09:25    geb2@TESTDOMAIN.COM    DC2$                                          

我真的无法得到这个结果。你能帮帮我吗?

3 个答案:

答案 0 :(得分:7)

$data | Foreach-Object {$_.Datum = [DateTime]$_.Datum; $_} | 
Group-Object Computer | 
Foreach-Object {$_.Group | Sort-Object Datum | Select-Object -Last 1}

答案 1 :(得分:1)

也许你使用$ GET_ [];声明?

答案 2 :(得分:1)

这应该可行,但我现在无法测试:

$result =$data | sort computer,{ [datetime]$_.datum } -desc | group computer | % { $_.group[0] }