这是这个question的延续。很抱歉重复一遍,但是没有这段时间,我无法继续前进,我对谷歌的搜索感到厌倦。我到明天才能对这个问题给出赏金。
我想检索每个月的每个数组的最新值,可能是7,6,5等。请问有什么解决方案或想法吗?
预期产出:
$array3 = 7/30/2015
6/30/2015
5/31/2015
数组中的所有最新日期。
发布于 2015-09-10 11:09:31
我不知道您的输出应该是什么样子(如果您提供了一个示例,它总是容易得多),但是如果您想检索--一个仅包含每个月最后一个的日期列表,请尝试如下:
gc $filePath |
sort { [datetime]$_ } -Descending |
group {([datetime]$_).Month } |
% {$_.Group | select -first 1}
它对降序日期进行排序,按月分组,然后相互选择第一个日期。
输出是:
9/22/2015
8/16/2015
7/30/2015
6/30/2015
如果需要反向顺序,只需将| sort { [datetime]$_ }
追加到脚本中即可。如果性能重要,则应从第一个sort
中删除sort
参数,并使用select -last 1
而不是sekect -first 1
编辑:为月份而不是8或9个月添加了筛选器,并对日期进行了排序:
$array3 = gc $filePath |
? { $tmp = [datetime]$_; $tmp.Month -ne "8" -and $tmp.Month -ne "9" } |
sort { [datetime]$_ } -Descending|
group {([datetime]$_).Month } |
% {$_.Group | select -first 1}
sort { [datetime]$_ } -Descending
$array3
的输出现在是:
7/30/2015
6/30/2015
注意:日期5/31/2015
不在您以前的列表中。
https://stackoverflow.com/questions/32499924
复制相似问题