2015-12-02 106 views
-1

我需要一个脚本,该脚本将使用'Date Started'列中的日期在.csv文件的最后7天内导入数据行(如。 csv,如下面的示例数据所示),然后将数据另存为另一个.csv文件。删除日期早于7天的CSV文件中的行

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

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

使用'进口csv'数据,'磨片拉重新对象'过滤数据,'export-csv -notype'导出数据。谷歌搜索这些条款会给你更多关于他们如何工作的细节。当引用“日期开始”列时,您需要将属性名称放在引号中,因为它包含空格。 – JohnLBevan

回答

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) 
+0

谢谢你。但是它是以美国格式解释日期,而不是英国格式dd/mm/yyyy,我需要。我应该指出这个抱歉。它可以修改为与英国日期一起使用吗? – BigMartin

+0

@BigMartin在这种情况下,您需要使用合适的合成字符串解析日期,如我答案的下半部分所述。 –

相关问题