2015-06-25 109 views
-1

GET-EC2Instance |%{$ .RunningInstance} | select-object InstanceId,@ {Name ='Key';表達式= {$.Tag.Key}},@ {Name ='Value';表達= {$ _。Tag.Value}}拆分多個項目

該命令顯示在下面的輸出。每個InstanceID具有多個鍵和多個值。 enter image description here

我怎麼重寫命令分割每個密鑰字符串和值字符串,所以輸出顯示只有一個項目,例如:

enter image description here

+0

這是您第三次提出類似問題。請停止這種行爲。如果您不再需要它們,請刪除您的舊問題。下次只需編輯你的第一個問題。 – Matt

回答

1

你可以管你有什麼成一個ForEach循環,然後內部的做For循環爲每個鍵/值對等:

Get-EC2Instance |Select -ExpandProperty RunningInstance | 
    select-object InstanceId,@{Name='Key'; Expression={$.Tag.Key} },@{Name='Value'; Expression={$_.Tag.Value} } | 
    ForEach{ 
     $CurInst = $_ 
     For($i=0;$i -lt $CurInst.Key.Count;$i++){ 
      New-Object PSObject [email protected]{ 
       'InstanceId' = $CurInst.InstanceId 
       'Key' = $CurInst.Key[$i] 
       'Value' = $CurInst.Value[$i] 
      } #End object properties 
     } #End For Loop 
    } #End ForEach Loop 

這應該輸出像你想要的。

+0

謝謝你的幫助! – minisch