コマンドラインまたは PowerShell を使用して contig.exe の出力を *.csv に解析します。

コマンドラインまたは PowerShell を使用して contig.exe の出力を *.csv に解析します。

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"

スペースを含む列を処理するために列を引用符で囲んでいることに注意してください

関連情報