我有一個 csv 可以在 power shell 中匯入,我可以使用以下命令匯入檔案:
Import-Csv -Path 'c:/.../etc' -Delimiter ","
并執行一些像這樣的簡單過濾器:
$b = "Date development"
$a| Where {$_.$b -l '11/06/2021'} | Format-Table
鑒于此,我想知道如何過濾日期戳之間的間隔。格式將是:
Name, development date, ID --- Headers
P0113D, 10/06/2021,33
P0123D, 4/16/2020, 42
P0423D, 10/25/2021, 213
P0113D, 11/22/2021, 298
我想匯入從 10/06/2021 到 10/25/2021 29 的日期范圍并匯出過濾后的檔案。
提前致謝 !
uj5u.com熱心網友回復:
干得好。請更改下面的剪輯以匹配您的日期范圍。有任何問題請回復。謝謝。
Import-Csv -Path 'c:/.../etc' -Delimiter ","
$filterDate = (Get-Date).AddDays(-7)
$Data = Import-CSV "H:\Data.csv" | Where-Object {$_.Date -as [datetime] -lt $filterDate}
uj5u.com熱心網友回復:
您可以這樣做,請注意,我們正在使用$_.'development date' -as [datetime],這會將development date列上的當前值轉換strings為datetime物件。
在此示例中,它正在過濾兩個日期之間10/06/2021并10/25/2021包括兩個日期的范圍。
@'
Name, development date, ID
P0113D, 10/06/2021,33
P0123D, 4/16/2020, 42
P0423D, 10/25/2021, 213
P0113D, 11/22/2021, 298
'@ | ConvertFrom-Csv | Where-Object {
$date = $_.'development date' -as [datetime]
$date -ge [datetime]'10/06/2021' -and $date -le [datetime]'10/25/2021'
}
輸出:
Name development date ID
---- ---------------- --
P0113D 10/06/2021 33
P0423D 10/25/2021 213
請注意,上面是一個示例,如果您從CSV檔案中嘗試它,語法將是:
Import-Csv -Path 'c:/.../etc' -Delimiter "," | Where-Object { ....
為了闡明使用-as和轉換[datetime]為字串之間的區別,這里有一個實際示例:
[datetime]'11/22/2021' # => Monday, November 22, 2021 12:00:00 AM
'11/22/2021' -as [datetime] # => Monday, November 22, 2021 12:00:00 AM
[datetime]'notadate!!!' # => Exception thrown
'notadate!!!' -as [datetime] # => Nothing is returned // no errors
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/372796.html
