としてオブジェクトを整形:は私のようなオブジェクトを出力しようとしてきちんと見ているリスト
が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
希望する出力の例を示してください。明らかに、質問の冒頭でスクリーンショットに表示された内容ではありません。 –