gpt4 book ai didi

arrays - Powershell:比较数组中的多个值

转载 作者:行者123 更新时间:2023-12-03 00:39:05 25 4
gpt4 key购买 nike

我在Powershell中遇到了另一个棘手的问题。我有约4000个条目的列表,其中有以下详细信息:

<Computername> | <Username> | <StartDate> | <LastDate> | <IDNum>
computer1 | jsmith | 4/12/12 | 4/12/13 | 52648
computer1 | jsmith | 4/12/12 | - | 52649
computer1 | jsmith | 4/12/12 | 8/7/13 | 52644
computer2 | hreid | 2/5/12 | 8/5/13 | 52396
computer2 | hreid | 4/10/12 | 5/18/13 | 52300
computer3 | mdrake | 2/10/11 | 12/18/12 | 52590
computer3 | mdrake | 5/10/11 | 3/20/12 | 52593

它是CSV,我正试图找到一种方法来比较Computername和LastDate字段,并吐出带有相关的computername值的最新行的列表。我可以将CSV读入一个变量,但是在使用get-member值和每个循环时,我感到很费劲。

理想情况下,输出应如下所示:
<Computername> | <Username> | <StartDate> | <LastDate> | <IDNum>
computer1 | jsmith | 4/12/12 | 8/7/13 | 52644
computer2 | hreid | 2/5/12 | 8/5/13 | 52396
computer3 | mdrake | 5/10/11 | 3/20/12 | 52593

有点复杂...我真的无法将其分解。有什么帮助吗?甚至关于如何开始编写脚本的想法...我在这里碰壁。

-更新-

谢谢雷纳特。因此,我发现我的来源 list 显然要复杂一些。它缺少列表中的某些计算机名称...此外,还缺少一些lastdate条目。因此,我需要更改原始列表,使其看起来像这样:
<Computername> | <Username> | <StartDate> | <LastDate> | <IDNum>
computer1 | jsmith | 4/12/12 | 4/12/13 | 52648
computer1 | jsmith | 4/12/12 | - | 52649
computer1 | jsmith | 4/12/12 | 8/7/13 | 52644
computer2 | hreid | 2/5/12 | 8/5/13 | 52396
computer2 | hreid | 4/10/12 | 5/18/13 | 52300
computer3 | mdrake | 2/10/11 | 12/18/12 | 52590
computer3 | mdrake | 5/10/11 | 3/20/12 | 52593
| fmann | 4/11/12 | 3/20/13 | 52342

我将尝试使用您的代码示例,看看我如何做。我真的很烦这个源 list ,因为我发现某些条目缺少所有东西……啊。

最佳答案

您可以按计算机名分组,然后为每个组按LastDate排序并选择最后一项。

您将不得不进行调整以满足您的格式需求,但是它看起来像这样。

Import-Csv -Path .\computers.csv|
group -Property Computername|
foreach {
$_.group|
sort { try { [datetime]$_.LastDate } catch {} }|
select -last 1
}|
Export-Csv -Path .\computers_LastDate.csv -NoTypeInformation

关于arrays - Powershell:比较数组中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com