删除日期超过7天的CSV文件中的行

时间:2015-12-02 16:50:20

标签: csv powershell

我需要一个脚本,该脚本将使用“开始日期”中的日期从.csv文件导入过去7天内的数据行。列(如下面的示例数据中的.csv中所示),然后将数据另存为另一个.csv文件。

"Name","Title","Date Started"

Dave,Manager,02/12/2015
Jim,Worker,05/08/2015
Susan,Worker,04/07/2015

1 个答案:

答案 0 :(得分:1)

导入源文件后,将Date Started列的值转换为实际日期,然后过滤所需时间范围内的值并导出结果:

$maxage = (Get-Date).AddDays(-7)

Import-Csv 'C:\path\to\input.csv' |
  Where-Object { [DateTime]$_.'Date Started' -ge $maxage } |
  Export-Csv 'C:\path\to\output.csv' -NoType

如果将值转换为DateTime对象并不起作用,则需要像这样解析它(根据需要调整格式字符串):

[DateTime]::ParseExact(($_.'Date Started', 'dd\/MM\/yyyy', [Globalization.CultureInfo]::InvariantCulture)