我希望从巨大的CSV文件中删除所有行,但3月份登录的行除外。我有一个PS脚本适用于其他项目,但似乎不适用于此:
$SourceFile = 'C:\Temp\Users_with_IP_20180409.CSV'
$startDate = "3/1/2018"
$endDate = "3/31/2018"
(Get-Content $SourceFile) | where { $_.LocalTime -ge $startDate -and $_.LocalTime -lt $endDate } | Set-Content $SourceFile
答案 0 :(得分:0)
具有开始/结束日期的脚本已转换为[datetime]:
$SourceFile = 'C:\Temp\Users_with_IP_20180409.CSV'
$TargetFile = 'C:\Temp\Users_with_IP_20180409_sans_March.CSV'
$startDate = [datetime]"3/1/2018"
$endDate = ([datetime]"3/31/2018").AddDays(1).AddSeconds(-1)
(Import-Csv $SourceFile) |
Where-Object { (Get-Date $_.LocalTime) -lt $startDate -or
(Get-Date $_.LocalTime) -gt $endDate } |
Export-Csv $TargetFile -NoType