Если условие не работает с записями DateTime
Я не могу получить правильный отчет с приведенной ниже частью кода. Вот что я делаю:
- Импорт файла.csv в переменную, которая содержит
UserName
,LastSucessSync
(Дата),Model
, - С ниже
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"
}