2015-12-02 49 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在這種情況下,您需要使用合適的合成字符串解析日期,如我答案的下半部分所述。 –