PowerShell Сравнение дат

Цель: импортировать даты из 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"

1 ответ

Решение

Когда вы импортируете 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, как и ожидалось.

Другие вопросы по тегам