使用Powershell按月过滤CSV文件

时间:2018-05-15 20:00:26

标签: powershell

我希望从巨大的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

Attaching an image of my CSV file.

1 个答案:

答案 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