我需要一個腳本,該腳本將使用'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
我需要一個腳本,該腳本將使用'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
轉換的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)
謝謝你。但是它是以美國格式解釋日期,而不是英國格式dd/mm/yyyy,我需要。我應該指出這個抱歉。它可以修改爲與英國日期一起使用嗎? – BigMartin
@BigMartin在這種情況下,您需要使用合適的合成字符串解析日期,如我答案的下半部分所述。 –
使用'進口csv'數據,'磨片拉重新對象'過濾數據,'export-csv -notype'導出數據。谷歌搜索這些條款會給你更多關於他們如何工作的細節。當引用「日期開始」列時,您需要將屬性名稱放在引號中,因爲它包含空格。 – JohnLBevan