Как прокомментировано: В этом прелесть PowerShell, вам не нужно итерировать себя, операторы равенства сами будут перебирать коллекцию левых аргументов
Когда входные данные для оператора являются скалярным значением, операторы сравнения возвращают логическое значение. Когда входные данные представляют собой набор значений, операторы сравнения возвращают любые совпадающие значения. Если в коллекции нет совпадений, операторы сравнения возвращают пустой массив.
Поскольку у меня нет доступа к вашей среде, я создал общий ответ для этого:
$Dates = [DateTime[]]('2020-03-10', '2020-03-11', '2020-03-12', '2020-03-14')
$Date1 = [DateTime]'2020-03-09'
$Date2 = [DateTime]'2020-03-12'
$Date3 = [DateTime]'2020-03-15'
Любая дата
Проверьте, меньше ли дата, чем указанная дата
If ($Dates -lt $Date1) {"Some dates are less then $Date1"} Else {"None of the dates are less then $Date1"}
If ($Dates -lt $Date2) {"Some dates are less then $Date2"} Else {"None of the dates are less then $Date2"}
If ($Dates -lt $Date3) {"Some dates are less then $Date3"} Else {"None of the dates are less then $Date3"}
Выход:
None of the dates are less then 03/09/2020 00:00:00
Some dates are less then 03/12/2020 00:00:00
Some dates are less then 03/15/2020 00:00:00
Все даты
Это означает, что если вы хотите проверить, попадают ли все даты в диапазон, вам нужно сделать обратное (проверьте, если любая дата не больше или равно указанной даты):
If (!($Dates -ge $Date1)) {"All dates are less then $Date1"} Else {"Some of the dates aren't less then $Date1"}
If (!($Dates -ge $Date2)) {"All dates are less then $Date2"} Else {"Some of the dates aren't less then $Date2"}
If (!($Dates -ge $Date3)) {"All dates are less then $Date3"} Else {"Some of the dates aren't less then $Date3"}
выход:
Some of the dates aren't less then 03/09/2020 00:00:00
Some of the dates aren't less then 03/12/2020 00:00:00
All dates are less then 03/15/2020 00:00:00