我会尽量准确地描述这一点。我的 CSV 格式为:
email, DayMade
email1@email.com, 2013-07-30T15:31:11.000Z
email2@email.com, 3013-07-31T15:31:15.0001
该报告每隔几天自动生成一次。我需要过滤它以删除所有超过一周的条目。我被告知使用命令:
$CutoffDate = (Get-Date).AddDays(-5)
$Data = Import-CSV "C:\gam\newestreport.csv" | `
Where-Object {$_.Date -as '[DayMade]' -lt $CutoffDate}
但是,这是返回错误,我认为这是由包含时间 (T15:31:11.0007) 引起的。
我不知道如何在留下日期的同时删除时间。
最佳答案
在您的 Where-Object 脚本 block 中,您需要将“DayMade”属性转换为 [DateTime] 对象。此外,在转换时,不要将要转换的类型括在引号中。
$CutoffDate = (Get-Date).AddDays(-5)
$Data = Import-CSV "C:\gam\newestreport.csv" | `
Where-Object {$_.DayMade -as [DateTime] -lt $CutoffDate}
关于datetime - 如何从日期时间格式的 CSV 中删除时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18728268/