如何使用PowerShell筛选CSV文件指定日期间隔数据并导出
PowerShell 筛选CSV日期区间并导出方案
核心注意事项:不要直接比较日期字符串,需统一转为DateTime类型避免格式适配、排序逻辑错误,注意你提供的CSV表头为development date,匹配时不要写错字段顺序和空格。
完整可运行代码
# 导入原始CSV文件 $csvData = Import-Csv -Path 'c:/替换为你的源文件路径.csv' -Delimiter "," # 定义筛选的日期区间边界,自动转为DateTime类型 $startDate = Get-Date "2021-10-06" $endDate = Get-Date "2021-10-25" # 筛选日期在区间内的所有行 $filteredData = $csvData | Where-Object { # 先去除字段前后空格,再转为DateTime类型比较 $currentDevDate = [DateTime]$_.'development date'.Trim() $currentDevDate -ge $startDate -and $currentDevDate -le $endDate } # 导出筛选结果到新CSV文件 $filteredData | Export-Csv -Path 'c:/替换为你的输出路径.csv' -Delimiter "," -NoTypeInformation -Encoding UTF8
效果说明
针对你提供的示例数据,运行后会筛选出2条符合要求的记录:
- P0113D, 10/06/2021, 33
- P0423D, 10/25/2021, 213
额外适配说明
- 如果部分行的
development date格式不统一导致转换报错,可以替换转日期的逻辑为指定格式解析:$currentDevDate = [DateTime]::ParseExact($_.'development date'.Trim(), "M/dd/yyyy", [Globalization.CultureInfo]::InvariantCulture) - 若需要先在控制台预览筛选结果,可在筛选逻辑后追加
| Format-Table验证输出正确性后再执行导出操作 -NoTypeInformation参数用于去掉PowerShell导出CSV时默认追加的类型描述头,符合常规CSV文件格式要求
内容的提问来源于stack exchange,提问作者Ashurayaz
相关产品推荐
相关产品推荐

