PowerShell日期排序不正确

3
我有一个包含各种不同ID的CSV文件。通过一些帮助,我已经能够将文件缩小到最旧日期的ID,并且它运行得很好......大多数情况下。我有几条记录似乎返回了最新日期,而其他记录返回了最旧日期,我无法弄清楚原因。总是发生在相同的记录上。
这是我输入CSV文件的一个示例:
Number  File Date
OU00067949, 6/14/2012,
OU00067949, 6/19/2012,
OU00067949, 11/15/2012,
OU00067949, 1/30/2013,
OU00080302, 1/3/2013,
OU00080302, 1/3/2013,
OU00080302, 12/28/2012,
OU00080302, 12/28/2012,
OU00080302, 12/27/2012,
OU00080302, 12/27/2012,
OU00080281, 2/14/2013,
OU00080281, 1/30/2013,
OU00080281, 1/16/2013,
OU00080319, 12/27/2012,
OU00080319, 12/27/2012,

以下是输出结果:

Number  File Date
OU00067949, 1/30/2013,
OU00080302, 1/3/2013,
OU00080281, 1/16/2013,
OU00080319, 12/27/2012,

我期望OU00067949的日期是最早的日期6/14/2012,但实际上得到的日期是1/30/2013。对于OU00080302也是一样的情况,但其他的都是正确的。有什么线索可以解释这种情况吗?
这就是整个脚本的全部内容。
Import-CSV $ImportFile | Group-Object "Number" | ForEach-Object { $_.Group | Sort-Object "File Date" | Select -First 1} | Export-CSV $ExportFile -NoTypeInformation

非常感谢您的帮助。

1个回答

19

看起来它试图将日期作为字符串进行排序。请尝试使用以下方法:

Import-CSV $ImportFile | Group-Object "Number" | ForEach-Object { $_.Group | Sort-Object { $_."File Date" -as [datetime] } | Select -First 1} | Export-CSV $ExportFile -NoTypeInformation

所以这样:

Sort-Object "File Date"

变成了这个:

Sort-Object { $_."File Date" -as [datetime] }

资料来源:


1
太棒了。谢谢Neo,这非常完美!这对我来说是一个巨大的帮助。 - mack
1
谢谢,这对我帮助很大,差不多是五年后的事了。 - Snak3d0c

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接