我有一个像这样的文本文件:
9/22/2015
8/16/2015
8/15/2015
7/30/2015
7/1/2015
6/30/2015
我正在尝试测量月份不等于9或8的最新条目。
我不合逻辑,尝试的内容如下:
$split1 = Get-Content "C:\RDS\split1.txt"
foreach($spl1 in $split1)
{
$sp1 = $spl1 -split '/'
$spl1M = $sp1[0]
if(($spl1M -ne $past_month) -and ($spl1M -ne $cur_month))
{
$array3 += $spl1
}else
{
$array3 | Measure-Latest | Add-Content "C:\month.txt"
}
}
简而言之:当我在第7个月中有2个元素时,我需要获取这两个元素中的最新元素并将其写入文件。所有其他月份不为8和9的其他用户也是如此(如果循环将对此加以保护)。 Measure-Latest是一个函数。
有人可以为我提供实现此目标的逻辑吗?
编辑:
最佳答案
您可以按月对日期进行分组,排序,然后选择每个月的最大日期:
$dateGroup = gc "C:\RDS\split1.txt" | Group-Object -Property { $dt=[datetime]$_; $dt.Month } | ?{ $_.Name -ne "8" -and $_.Name -ne "9" }
$dateGroup | %{ [pscustomobject]@{"Count"=$_.Count; "Name"=$_.Name; "Group"=$($_.Group | Sort-Object -Descending | Select-Object -first 1) } }
关于powershell - 在Powershell中需要一些逻辑来衡量最新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32481129/