
Ich versuche, die Ausgabedatei von contig.exe in eine durch Kommas getrennte Wertedatei zu analysieren. Ich habe eine Methode dafür entwickelt, nämlich Notepad++, aber angesichts der Anzahl der zu analysierenden Dateien (Hunderte von Textdateien) hätte ich gerne eine automatisierte Methode, die entweder die Befehlszeile oder PowerShell verwendet.
Ich würde zum Beispiel gerne Folgendes umstellen:
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
...das mögen:
E:\$Mft,80309 fragments
E:\$Mft::$BITMAP,2202 fragments
Irgendwelche Ideen? Danke!
Antwort1
In Powershell wenden Sie einfach Ihren regulären Ausdruck mit dem -match
Operator an und geben dann jede Übereinstimmung durch Kommas getrennt aus:
contig.exe | foreach-object{ if($_ -match "(.*) is in (.*)") {"`"$($Matches[1])`",`"$($Matches[2])`""}}
Ausgabe:
"E:\$Mft","80309 fragments"
"E:\$Mft::$BITMAP","2202 fragments"
Beachten Sie, dass ich die Spalten in Anführungszeichen gesetzt habe, um Spalten mit Leerzeichen zu behandeln