arrays - 获取最新日期

标签 arrays date powershell

我有一个数组,我称之为 $data。

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

    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

您可能需要进行一些用户验证,但类似的操作似乎适用于您的示例数据:

Please enter Hostname: log

Hostname LastModified
-------- ------------
LOG      1/4/2013    

If you then only want the date it would just be a matter of expanding the value from the result.

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

关于arrays - 获取最新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35857562/

相关文章:

javascript - 将包含字符串和数字的 JavaScript 数组排序为仅数字数组和仅字符串数组

json - 从传入的 JSON 反序列化 LocalDateTime

r - 按索引(日期)拆分 xts 对象

来自时间戳的java日期和时间

powershell - 我可以在 Write-Host 或 Write-Debug 中使用 -Format 运算符吗?

powershell - Jenkins powershell 插件正在运行 32 位 Powershell,我需要 64 位

javascript - ASP MVC、Ajax : return array of array of integers to controller method

ios - 按数组中的对象分组

javascript - 我可以在哪里放置 JavaScript 数组?

powershell - 如何在团队中使用通用的 powershell 配置文件