명령줄 또는 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"

공백이 있는 열을 처리하기 위해 열을 따옴표로 묶었습니다.

관련 정보