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
これを達成するより良い方法があれば、どんな提案も真剣に取られます。