У меня есть файл журнала robocopy, с которым я работаю, и мне нужно извлечь сводные строки с помощью powershell. Проблема, с которой я сталкиваюсь, заключается в том, что резюме не всегда одинаковой длины в количестве строк.Powershell получает строки из текстового файла после последнего вхождения строки
Предполагая, что файл журнала выглядит следующим образом:
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
Started : Tue Dec 01 06:55:11 2015
Source : C:\Source Path
Dest : E:\Destination Path
Files : *.*
Options : *.* /TEE /S /E /COPY:DAT /PURGE /MIR /NP /R:2 /W:2
------------------------------------------------------------------------------
List of files here
List of files here
List of files here
------------------------------------------------------------------------------
Total Copied Skipped Mismatch FAILED Extras
Dirs : 945 0 945 0 0 0
Files : 10118 4 10114 0 0 3
Bytes : 1.245 g 323.9 k 1.244 g 0 0 0
Times : 0:00:17 0:00:00 0:00:00 0:00:17
Speed : 5264920 Bytes/sec.
Speed : 301.261 MegaBytes/min.
Ended : Tue Dec 01 06:55:28 2015
Я могу статически получить последние 11 строк файла с помощью команды $summary = Get-Content $log | Select-Object -last 11 | Out-String
, но эти две скорости линии перечислены только если данные фактически перемещены, которые в противном случае получается последняя строка в списке файлов. В конечном счете, это не огромная проблема, но это выглядит не очень красиво.
Вместо заданного количества строк, как я могу получить последние строки из файла, после последнего (или четвертого, всегда есть 4) появления разделителя ---------------
?
Единственный минус, который я вижу здесь параметр контекста будет добавлять пустые строки после EOF, чтобы сделать его 20 строк. Я уже пробовал нечто подобное, но в зависимости от ситуации это сработает. Я немного придирчив к моему форматированию для этого проекта. – Butters
Нет, он не добавляет пустые строки. – Swonkie