Analise a saída de contig.exe para *.csv usando linha de comando ou PowerShell

Analise a saída de contig.exe para *.csv usando linha de comando ou PowerShell

Estou tentando analisar o arquivo de saída de contig.exe em um arquivo de valores separados por vírgula. Desenvolvi um método para fazer isso é o Notepad ++, mas dado o número de arquivos que preciso analisar (centenas de arquivos de texto), gostaria de ter um método automatizado usando linha de comando ou PowerShell.

Por exemplo, eu gostaria de transformar isso:

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

...nisso:

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

Alguma ideia? Obrigado!

Responder1

No PowerShell, basta aplicar seu regex usando o -matchoperador e gerar cada correspondência separada por vírgulas:

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

saída:

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

Observe que coloquei as colunas entre aspas para lidar com colunas com espaços

informação relacionada