로 Object를 포맷하기 :내가 같은 개체를 출력하기 위해 노력하고있어 깔끔하게 찾고 목록
이 Format-List
를 통해 개체를 포함하는 변수를 배관하는 것은 문제를 야기 빈 줄을 생성합니다. 사용하는 경우 빈 줄을 제거 할 수 없습니다. $obj = $obj | ? {$_}
개체가 들어있는 변수에 올바른 개체 수가 포함될 것으로 예상됩니다.
처음에는 $Host
을 실행하고 (내가 찾고있는 형식을 가지고 있습니다) 변수 $obj
을 실행하면 재미있는 결과를 얻을 수 있습니다.
도움을 주시면 감사하겠습니다. 여기에 제안 줄 바꿈을 제거 할 때 나는 심지어 얻을 출력 :
$String = @"
FileName: O:\iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
iiiiiiiiiiiiiii.txt
:`$DATA 9
SummaryInformation 128
{4c8cc155-6c1e-11d1-8e41-00c04fb9386d} 0
FileName: O:\ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
sssssssssssssss.txt
:`$DATA 9
SummaryInformation 128
{4c8cc155-6c1e-11d1-8e41-00c04fb9386d} 0
FileName:
O:\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt
:`$DATA 0
Lzip 7
"@
[regex]$pattern1 = '(?s)\s+FileName:\s+(?<FullName>.*?)\s+:\$DATA'
$Match1 = $String | Select-String -Pattern $pattern1 -AllMatches |
% { $_.Matches }
[regex]$pattern2 = '(?sm)(?:(?<Stream>^:\$DATA.*?)\s+FileName|(?<Stream>^:.*))'
$Match2 = $String | Select-String -Pattern $pattern2 -AllMatches |
% { $_.Matches }
$obj = 0..($Match1.Count -1) | % {
New-Object -TypeName PsObject -Property @{
FullName = $Match1[$_].Groups['FullName'].Value
Streams = $Match2[$_].Groups['Stream'].Value
}
}
$obj
편집 : 여기
코드의 당신은에서 구문 분석 파일 이름에서 줄 바꿈을 제거하지 마십시오FullName -------- O:\iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii... O:\ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss... O:\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt
트림 방법을 사용하여 여분의 공백을 제거하십시오. – user4317867
고마워, 나는 문자열이 아닌 객체를 다루고 있다고 생각한다. 예제를 제공해 줄 수 있습니까? – Mack
원하는 결과물의 예를 보여주십시오. 분명히 질문 시작 부분의 스크린 샷에서 보여준 것이 아닙니다. –