PowerShell日期比较

hag*_*n10 2 csv powershell date date-comparison

目标:从CSV导入日期.如果日期已经过去或今天,请显示它.

$dayInOctober = (Get-date).AddDays(90)
$csvname = "myCSV.csv"
$csvFile = Import-Csv C:\Users\a341162\Desktop\$csvname

foreach($row in $csvFile){
    if ($row.Date -le $dayInOctober){
        Write-Host $row.Date
    }
}
Run Code Online (Sandbox Code Playgroud)

但只有在我发出if语句时才有效-gt.不应该是我的方式吗?

myCSV.csv:

"Name","Date"
"admryantest2","7/20/2018"
"admryantest3","7/20/2018"
"admryantest3","7/23/2018"
"admryantest3","7/23/2018"
Run Code Online (Sandbox Code Playgroud)

EBG*_*een 5

导入CSV时,$ row.Date是一个字符串.如果您想将日期作为日期进行比较,则需要将其转换为日期:

$dayInOctober = (Get-date).AddDays(90)
$csvname = "myCSV.csv"
$csvFile = Import-Csv C:\Users\a341162\Desktop\$csvname

foreach($row in $csvFile){
    if ((Get-Date $row.Date) -le $dayInOctober){
        Write-Host $row.Date
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以按预期使用-le.