Get-EC2Instance |%{$ .RunningInstance} | select-object InstanceId,@ {Name ='Key'; Expression = {$ .Tag.Key}},@ {Name ='Value';表达式= {$ _.Tag.Value}}
此命令显示以下输出。每个InstanceID都有多个键和多个值。
如何重写命令以拆分每个键字符串和值字符串,以便输出只显示一个项目,例如:
答案 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
这应该像你想要的那样输出。