如何在Powershell中创建哈希表数组?

问题描述

我有一个具有以下结构的哈希表,

$podhashtable = @{2 = '1','2' ; 3 = '3','4','5' ; 1 = '6'}

这是我如何实现上述哈希表的代码

$podnumbers = @(2,3,1)
$podInfo = @()
$podhashtable = [ordered]@{}
$buff = 0
foreach ($pd in $podnumbers) {
    #$podInfo = @()
    for($i=0;$i -lt $pd;$i = $i+1) {
    $pod = Read-Host -Prompt "Assign the pod numbers for",$esxarray[$buff]
    $podinfo += $pod
    }

$podInfoOb = New-Object PSObject –Property $podsets
$podsets = @{$pd = $podInfo}
$podhashtable += $podsets
$buff = $buff + 1
}
Write-Output $podhashtable 

我正在尝试创建如下所示的哈希表数组,

$podhashtable = @{2 = '1','2'},@{3 = '3','5'},@{1 = '6'}

获取上述哈希表数组的最佳方法是什么?

解决方法

这个问题显然是指:How to add same keys with different values to a hashtable in powershell?

我想您想这样做:

$buff = 0
$podnumbers = @(2,3,1,2)
$podhashtable = foreach ($pd in $podnumbers) {
    $podInfo = @{}
    for($i=0; $i -lt $pd; $i = $i+1) {
        $pod = Read-Host -Prompt "Assign the pod numbers for" #,$esxarray[$buff]
        $podinfo[$i] = $pod
        # $podInfoOb = New-Object PSObject –Property $podsets
        $podInfo
        $buff = $buff + 1
    }
}
Write-Output $podhashtable

但是我不确定,因为您没有提供MCVE(请下次提供;例如:定义$esxarray或将其省略)。