PowerShell 日期比较

PowerShell 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
    }
}

但只有当我使用 if 语句 -gt 时才有效。不应该是我上面的方式吗?

myCSV.csv:

"Name","Date"
"admryantest2","7/20/2018"
"admryantest3","7/20/2018"
"admryantest3","7/23/2018"
"admryantest3","7/23/2018"

当您导入 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
    }
}

然后你就可以正常使用-le了。