获取最新日期

沙奈

我有一个名为$ data的数组。

我想从$ data数组中获取csv文件中每个主机的最早日期。用户将输入一个主机,它将找到它被修改的最早日期。

    Hostname    LastModified
    HD           9/8/2012
    LOG          9/15/2004
    NETMAN       12/25/2004
    NETMAN       5/5/2015
    LOG          1/4/2013
    LOG          6/6/2011

因此,如果他们输入LOG,我希望它能给我最早的日期。

    Created on  9/15/2004

码:

 $data= import-csv ".\Earliest Date Template.csv" 
 $Hostname=Read-Host "Please enter Host Name"
 $data | Foreach-Object {$_."Last Modified" = [DateTime]$_."Last Modified"; $_} | Group-Object Hostname| Foreach-Object {$_.Group | Sort-Object LastModified | Select-Object -First 1}
马特

将它们分组似乎确实是可行的方法,但您无需这样做。只需按日期对整个列表进行排序,然后从列表中选择最后一个选项即可(与您要查找的主机名匹配)。

$hostname = Read-Host "Please enter Hostname" 
$data | Sort-Object {[DateTime]$_."LastModified"} | Where-Object{$_.Hostname -eq $hostname} | Select -Last 1

您可能需要进行一些用户验证,但是类似的事情似乎可以用于示例数据:

请输入主机名:log

主机名LastModified 
-------- ------------ 
LOG 1/4/2013    

如果您只想要日期,则只是从结果中扩展值即可。

$data | 
    Sort-Object {[DateTime]$_."LastModified"} | 
    Where-Object{$_.Hostname -eq $hostname} | 
    Select -Last 1 -ExpandProperty LastModified

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章