2014-02-21 63 views
0

我有3點例的行大源CSV文件,如下過濾一個CSV其中系統日期格式和文件的日期格式不同

0000000000254000,19/02/2014,"zzzzzzz","close","BIL","5378874","125.00", 
0000000000254000,19/12/2013,"zzzzzzz","close","BIL","5378874","125.00", 
0000000000254000,19/08/2013,"zzzzzzz","close","BIL","5378874","125.00", 

我想刪除是< 10天即,其中所有的行今日() - 上述日期欄基於人對這個網站的實物捐贈< 10和我靠近與下面的腳本:

get-content C:\temp\date2.csv | where { 
    [date] ($_.split(','))[1] -lt (get-date).date.adddays(-10) 
} | set-content "C:\temp\newdate.txt" 

它的工作原理,如果我對齊日期與PowerShell的系統日期格式的文件但任何人都可以幫助我怎麼做這在上面的簡單腳本中嗎?

我已經試過這在一開始卻悲慘地失敗了:

(Get-Culture).DateTimeFormat.ShortDatePattern="dd/MM/yyyy" 
+0

當你說「失敗慘敗」時,究竟發生了什麼?錯誤,不正確的行被返回? – Talvalin

+0

對不起 - 我的導出文件是空的 – user3336725

+0

如果我運行上面沒有輸出語句的腳本,我會得到錯誤。 「 」無法找到類型[日期]:確保包含此類型的程序集已加載。「 – Talvalin

回答

2

試試這個:

Import-Csv C:\temp\date2.csv -Header c1,c2,c3,c4,c5,c6,c7 | 
where { [datetime]::ParseExact($_.c2, "dd/MM/yyyy", $null) -lt (get-date).date.adddays(-10)} | 
Export-Csv -NoTypeInformation "C:\temp\newdate.txt" 

-Header賦予名稱列,您可以更改,無論你只要您相應地修改第2行的$_.c2即可。

+0

這是偉大的,並解決了這個問題,謝謝你花時間幫助我 - 我真的很感激它。 – user3336725