如果有人可以帮我解决这个问题。 我有一个CSV文件,我想将日期列与今天的日期进行比较,如果超过20天,我想将名称列导出为不同的CSV。
姓名日期
2015年7月7日测试
测试4/5/2015
2015年5月2日测试
答案 0 :(得分:0)
假设您的CSV中的日期格式为d/M/yyyy
且字段以空格分隔:
$sInFile = "C:\input.csv" # Change to your actual path
$sOutFile = "C:\output.csv" # Change to your actual path
$cInCsv = Import-Csv -Delimiter ' ' -Path $sInFile
$sDateFormat = "d/M/yyyy"
$iMaxDays = 20
$oNow = Get-Date
$cOutCsv = @()
foreach ($oRow in $cInCsv) {
$oRowDate = [DateTime]::ParseExact($oRow.Date, $sDateFormat, $null)
if ( ($oNow - $oRowDate).Days -gt $iMaxDays) { $cOutCsv += $oRow }
}
$cOutCsv | Export-Csv -Path $sOutFile -NoTypeInformation