Я пытаюсь проанализировать выходной файл из 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 ответ1

1

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

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

выход:

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .