Если условие не работает с записями DateTime

Я не могу получить правильный отчет с приведенной ниже частью кода. Вот что я делаю:

  1. Импорт файла.csv в переменную, которая содержит UserName, LastSucessSync (Дата), Model,
  2. С ниже foreach Цикл это отформатирует.html отчет и предоставит значения зеленого или красного цвета.

Проблема в том, что если в файле.csv поле "Дата" пусто, оно по-прежнему отображается ЗЕЛЕНЫМ или иногда КРАСНЫМ. Также выдает следующую ошибку:

Невозможно преобразовать значение "" в тип "System.DateTime". Ошибка: "Строка не была
признан действительным DateTime."
На C:\MobileStats.ps1:87 символ:4
+ if([datetime]$Entry.LastSuccessSync -lt (Get-Date).AddDays(-14) -или $Entry.LastS ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo: InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId: InvalidCastParseTargetInvocationWithFormatProvider

В остальном все хорошо. Просто я хочу отметить его как КРАСНЫЙ, когда дата пуста или 14 дней назад.

Код PowerShell:

foreach ($Entry in $Result) {
    if ([datetime]$Entry.LastSuccessSync -lt (Get-Date).AddDays(-14) -or $Entry.LastSuccessSync -like "") {
        $Cdrivecolor="RED"
    } else {
        $Cdrivecolor="Green"
    }

0 ответов

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