2015-06-23 5 views
0
Get-EC2Instance |%{ $_.RunningInstance } | 
    select-object InstanceId,LaunchTime,@{Name='Value'; Expression={$_.Tag.Value} }, @{Name='Key'; Expression={$_.Tag.Key} } 

enter image description hereОтображение вывода с несколькими значениями

Каждое значение и Key имеют несколько значений, как вы можете видеть на скриншоте. Как переписать код так, вывод может выглядеть следующим образом:

enter image description here

ответ

1

Вот одно решение; это не самый изящный, но, надеюсь, решит вашу проблему:

для вашего Use Case

Get-EC2Instance | ` 
    %{ 
     $x = $.RunningInstance; 
     $x.Tag | select-object 
      @{Name="InstanceId"; Expression={$x.InstanceId}} 
      ,@{Name="LaunchTime"; Expression={$x.LaunchTime}} 
      ,@{Name="Value";  Expression={$_.Value}} 
      ,@{Name="Key";  Expression={$_.Key}}; 
    } 

Simple Demo

cls 
$x = @(
    (New-Object –TypeName PSObject –Prop @{Name='one';[email protected]('a','b','c');}) 
    ,(New-Object –TypeName PSObject –Prop @{Name='two';[email protected]('d','e','f');}) 
    ,(New-Object –TypeName PSObject –Prop @{Name='three';[email protected]('g','h','i');}) 
    ,(New-Object –TypeName PSObject –Prop @{Name='four';[email protected]('j','k','l');}) 
    ,(New-Object –TypeName PSObject –Prop @{Name='five';[email protected]('m','n','o');}) 
) 

#show what the preparation code produced: 
#$x | select Name, List 

#show the output we're after 
$x | %{$n=$_.Name; $_.List | select @{Name="Name";Expression={$n}},@{Name="ListValue";Expression={$_}}} 
+0

Привет то не решить мою проблему. $ x.Tag не содержит значений экземпляра и запуска. – minisch

+1

@minisch затем сделайте простое изменение для вашей отладки. Этот ответ имеет правильный логический подход к вашей проблеме. – Matt

+0

@minisch: код не принимает 'InstanceId' или' LaunchTime' из '$ x.Tag', но из' $ x' напрямую. Подойдите ближе, и вы увидите значение и ключ из '$ _', который представляет' $ x.Tag', в то время как 'InstanceId' и' LaunchTime' поступают из '$ x'. – JohnLBevan

Смежные вопросы