菜鸟问题。 我有以下格式的csv文件
2019-04-18 08:29:47,ACE001P,QL.IN.XCENTER.ERECEIPT.FACADE,2
日期和时间戳记可以追溯到将近一个月。现在,我只需要最后一天的数据,即1天的数据。我正在使用下面的代码,但没有输出。
$Data = Import-CSV "E:\Chayan\QL.IN.XCENTER.ERECEIPT.FACADE_ACE001P_1.csv"
$CutoffDate = (Get-Date).AddDays(-30)
$Data | Where-Object {$_.Date -as [datetime] -lt $CutoffDate} | Out-File .\QL.IN.XCENTER.ERECEIPT.FACADE_ACE001P_2.csv
我知道我做的事情非常愚蠢。只是需要一种方法来完成这项工作。
答案 0 :(得分:1)
为了有效地使用Import-Csv
,您需要数据中的标头。我使用了-Header
开关,并添加了包含Date
的组合标题。随时更改这些。如果您的文件已经有标题,则可以完全省略。
$Data = Import-CSV "E:\Chayan\QL.IN.XCENTER.ERECEIPT.FACADE_ACE001P_1.csv" -Header "Date","Col2","Col3","Col4"
$CutoffDate = (Get-Date).AddDays(-30)
$Data | Where-Object {$_.Date -as [datetime] -gt $CutoffDate} |
Export-Csv -Path ".\QL.IN.XCENTER.ERECEIPT.FACADE_ACE001P_2.csv" -NoTypeInformation
我将-lt
切换为-gt
,因为您给出了日期范围的下限。这意味着您需要找到一个大于该日期的日期,即今天大于昨天。
即使帖子说您想要一天的数据,但我还是以.AddDays(-30)
作为您的约会开始者。如果您确实需要最后一天的数据,则应将其更改为.AddDays(-1)
或.AddHours(-24)
。