Анализ вывода contig.exe в *.csv с помощью командной строки или PowerShell

Анализ вывода contig.exe в *.csv с помощью командной строки или PowerShell

Я пытаюсь разобрать выходной файл contig.exe в файл значений, разделенных запятыми. Я разработал метод для этого в Notepad++, но, учитывая количество файлов, которые мне нужно разобрать (сотни текстовых файлов), я хотел бы иметь автоматизированный метод с использованием командной строки или PowerShell.

Например, я хотел бы превратить это:

Contig v1.7 - Makes files contiguous
Copyright (C) 1998-2012 Mark Russinovich
Sysinternals - www.sysinternals.com


Processing E:\$Mft...
E:\$Mft is in 80309 fragments

Processing E:\$Mft::$BITMAP...
E:\$Mft::$BITMAP is in 2202 fragments

Summary:
     Number of files processed   : 2
     Average fragmentation       : 41255.5 frags/file

...в это:

E:\$Mft,80309 fragments
E:\$Mft::$BITMAP,2202 fragments

Есть идеи? Спасибо!

решение1

В PowerShell вы просто применяете регулярное выражение с помощью -matchоператора, а затем выводите каждое совпадение, разделяя его запятыми:

contig.exe | foreach-object{ if($_ -match "(.*) is in (.*)") {"`"$($Matches[1])`",`"$($Matches[2])`""}} 

выход:

"E:\$Mft","80309 fragments" 
"E:\$Mft::$BITMAP","2202 fragments"

Обратите внимание, что я заключил столбцы в кавычки, чтобы обрабатывать столбцы с пробелами.

Связанный контент