Я добавлю еще один вариант.Прочитайте весь файл журнала с -Raw
, чтобы получить многострочную строку.Удалите ---- из первой строки, а затем разделите на 3 или более дефиса в начале строки, это даст вам каждый сеанс в виде многострочной строки, затем вы можете просто вывести текст или пользовательские объекты, или что угодноты хотел с этим.Разбейте многострочную строку на символы новой строки, отфильтруйте по «сбоям» и сделайте подсчет, чтобы получить сбои за сеанс.
(GC E:\shell\lot.log -Raw) -replace '^-+' -split '(?<=[\r\n])---+'|%{
'{0} had {1} failure(s)' -f ($_.split("`n")[0].Trim()),($_ -split '[\r\n]+'|?{$_ -match 'failure'}).Count
}
Это даст (с учетом предоставленного образца) вывод:
Session 1 had 2 failure(s)
Session 2 had 1 failure(s)
Session 3 had 2 failure(s)