2

我有一个键/值对哈希表的哈希表(来自 .ini 文件)。它看起来像这样:

Name                           Value                                                                   
----                           -----                                                                   
global                         {}                                                                      
Variables                      {event_log, software_repo}                                               
Copy Files                     {files.mssql.source, files.utils.source, files.utils.destination, fil...

如何在一个哈希表中输出所有键/值对,而不是这样做?

$ini.global; $ini.variables; $ini."Copy Files"
4

2 回答 2

2

鉴于这$hh是您可以使用哈希表的哈希表,您可以使用循环:

foreach ($key in $hh.keys)
{
  Write-Host $hh[$key]
}
于 2012-06-07T16:58:17.783 回答
2

您可以轻松编写一个函数以通过哈希进行递归:

$hashOfHash = @{
    "outerhash" = @{
        "inner" = "value1"
        "innerHash" = @{
            "innermost" = "value2"
        }
    }
    "outer" = "value3"
}

function Recurse-Hash($hash){
    $hash.keys | %{
        if($hash[$_] -is [HashTable]){ Recurse-Hash $hash[$_]  }
        else{
            write-host "$_ : $($hash[$_])"
        }
    }
}

Recurse-Hash $hashOfHash

以上只是write-host关键值,但你明白了。

于 2012-06-07T17:32:03.153 回答