拆分字符串中的多个项目

时间:2015-06-25 01:55:47

标签: powershell

Get-EC2Instance |%{$ .RunningInstance} | select-object InstanceId,@ {Name ='Key'; Expression = {$ .Tag.Key}},@ {Name ='Value';表达式= {$ _.Tag.Value}}

此命令显示以下输出。每个InstanceID都有多个键和多个值。 enter image description here

如何重写命令以拆分每个键字符串和值字符串,以便输出只显示一个项目,例如:

enter image description here

1 个答案:

答案 0 :(得分: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 -Prop@{
                'InstanceId' = $CurInst.InstanceId
                'Key' = $CurInst.Key[$i]
                'Value' = $CurInst.Value[$i]
            } #End object properties
        } #End For Loop
    } #End ForEach Loop

这应该像你想要的那样输出。