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, как и ожидалось.