2017-01-11 7 views
0

ハッシュテーブルから値を列挙しようとしています。ハッシュテーブルから値を引き出す

通常、これはGetEnumerator()メソッドを使用するか、ステートメント(hereなど)を使用して行います。

ただし、パイプラインを最大限柔軟に保つためにカスタムテーブルを作成しています。

# Create Custom Table 
$ExpandedTable = 
    @{e={$_.person.height};label='Height'}, 
    @{e={$_.person.weight};label='Weight'}, 
    @{e={$_.person.age};label='Age'}, 
    @{e={$_.person.Certifications};label='Certifications}'} 

# Cmdlet 
function Get-Person { 
    param(
     [Parameter(Mandatory=$true,HelpMessage='Please enter a Name')] 
     [string]$person 
     [switch]$Expanded 
    ) 

    if($person -match $Regex) { 
     $PersonelProperties = Invoke-RestMethod -Method Get -Uri https://www.url.com/api/person -Body @{ apikey = $mykey 
      secret = $somesecret 
    } 
    if ($PersonelProperties.response_code -eq '0' -and $PersonelProperties.response.Count -eq 0) { 
     Write-Warning -Message 'Person not found in Data Base!' 
    } elseif ($PersonelProperties.response_code -eq '0' -and $PersonelProperties.response.Count -gt 0) { 
     if ($Expanded -eq $true) { 
      # Attempting to create table from Data called from API here 
      Write-Verbose -Message 'Creating Table' 
      $PersonelProperties | Select-Object -Property $ExpandedTable 
     } else { 
      Write-Verbose -Message 'Creating Table' 
      $PersonelProperties | Select-Object -Property $RegularTable 
     } 
    } 
} 

目標:

私は次のような出力をしたい:

PS > Get-Person 'John Doe' 

Height     : 73 
Weight     : 230 
Age      : 28 
Certifications   : {GCIA, GFCE, OSCP, GREM}

私はこのように見えるように、ハッシュテーブルの配列{GCIA, GFCE, OSCP, GREM}

から認定値を削除する:

Height     : 73 
Weight     : 230 
Age      : 28 
Certifications   : GCIA, GFCE, OSCP, GREM

これを達成するより良い方法があれば、どんな提案も真剣に取られます。

答えて

2

あなたの計算プロパティでCertificationsリストに参加:

@{e={$_.person.Certifications -join ', '};label='Certifications}'} 
関連する問題