Тема: Сравнение времени лога последней строки PowerShell
Добрый вечер!
Есть такой скрипт:
#выводит последнюю строку
$d= "get-content -path d:\logs\file.log | select-object -last 1" | powershell -command -
#Выбирает в последней строке с 6 по 11 символ
$OFS=""; $r= [string]"$d"[6..11]
#Текущее время формата hh:mm
$f= get-date -uformat %R
#Сравнение текущего времени и временем последней записи в файле
$e= new-timespan -start ($f) -end($r)
#Вывод рез-та
write-host $e
Данный скрипт находит в одном файле последнюю строчку выбирает с 6 по 11 символ(там содержится время формата hh:mm)
Далее, дата последней строки сравнивается с текущим временем, и выводит разницу во времени типа (hh:mm:ss).
Есть еще такой кусок кода:
$s= gci d:\logs\*smtppop*.log | % {if ((gc $_)[-1] -match 'Error') {'File {0} есть' -f $_} else {'File {0} нету' -f $_}}
$s
Этот код ищет 'Error' в последней строке лога, рез-тат: имя лога и слово есть или нет 'Error'.
Я пробовал модернизировать второй код под мою задачу, так как результат такого вида какого и необходим, но не могу найти решения как поставить условие на время, а именно если разница во времени >20 минут, то рядом с файлом вывести, например 'да', в остальных случаях 'нет'. Кол-во файлов заранее не известно.
Буду благодарен любой информации.