【问题标题】:Get latest dates from an array per object group in Powershell从 Powershell 中每个对象组的数组中获取最新日期
【发布时间】:2013-06-10 13:47:39
【问题描述】:

我有一个数组$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$                                          

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

【问题讨论】:

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


    【解决方案1】:
    $data | Foreach-Object {$_.Datum = [DateTime]$_.Datum; $_} | 
    Group-Object Computer | 
    Foreach-Object {$_.Group | Sort-Object Datum | Select-Object -Last 1}
    

    【讨论】:

    • 这解决了我的问题。我在屏幕上得到了确切的结果。谢谢!!
    【解决方案2】:

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

    【讨论】:

    • 我也认为将数据放入数据库更容易,因为如果继续将数据放入数组中,网站会慢得多
    • 我认为您在谈论 php,但它是 powershell。无论如何,谢谢。
    【解决方案3】:

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

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

    【讨论】:

    • 它给了我最后两行的结果。你走的路很好,但行不通。还是谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多