2017-02-15 4 views
0

残りのAPIから出力を解析する際に問題が発生しています。 それが今、私はちょっと、ラインによってそれを分割する方法についてのアイデアを持っていますし、私は次のコードpowershell:複数行の文字列を分離して解析する

$data.Split("`n") 

を使用しようが、私はまだ方法を見つけ出すカント

Policy Name: Default_US_MultiSite Id: abc1234abc123 Buckets: support_us1_multisite,ch1ny2 
Policy Name: Default_CH Id: 123456789acdef Buckets: question,answer,ch2,ch1,drive.me.closer 
Policy Name: Default_NY Id: qrstuvwxyz9876 Buckets: demo,bucket1,test1,test,ny0,nyhello,goodbye,new.shoes,pizza,cutecats,theinternetisfor,Halloween,For-the-emperor 

複数行の文字列であります次回行くと、この

を解析するために、それは別のオブジェクトとしてID

私はに変換またはJSONとして割り当てるか、バケットをポリシー名を認識doesntのかxml、または$ dataのプレフィックスであるConvertto-xmlまたは[xml]以上のものを使用していますか?

おかげ

答えて

2

例:

$data = @" 
Policy Name: Default_US_MultiSite Id: abc1234abc123 Buckets: support_us1_multisite,ch1ny2 
Policy Name: Default_CH Id: 123456789acdef Buckets: question,answer,ch2,ch1,drive.me.closer 
Policy Name: Default_NY Id: qrstuvwxyz9876 Buckets: demo,bucket1,test1,test,ny0,nyhello,goodbye,new.shoes,pizza,cutecats,theinternetisfor,Halloween,For-the-emperor 
"@ 

$data -split "`n" | 
    Select-String 'Policy Name: (\w+) Id: (\w+) Buckets: (.+)' | 
    ForEach-Object { 
    New-Object PSObject -Property ([Ordered] @{ 
    "PolicyName" = $_.Matches[0].Groups[1].Value 
    "Id"   = $_.Matches[0].Groups[2].Value 
    "Buckets" = $_.Matches[0].Groups[3].Value 
    }) 
} 

Select-String出力MatchInfoオブジェクト。これらから、マッチグループを抽出することができます。 New-Objectは、各出力文字列から抽出された一致に基づいて新しいオブジェクトを出力します。

+0

大変よろしくお願い致します。** ** Foreach-object {$ _ -split "、"} **をバケットに追加して配列にするだけです。なぜ、どのようにこの作品が正しい方向ですか? – AdilZ

+1

簡単な説明が追加されました。 –

関連する問題