使用命令列或 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"

請注意,我已用引號將列括起來,以處理帶有空格的列

相關內容