Rus*_*our 3 powershell hashtable
我正在努力寻找一种巧妙的方法将分隔的字符串转换为哈希表.例如给定字符串:
UK_Kent_Margate
我想将其转换为PowerShell HashTable,如下所示:
$result = @{
    UK = @{
        Kent = @{
            Margate = @{}
        }
    }
 }
因此,我可以使用"_"字符上的拆分轻松地将字符串分解为数组,但后来我正在努力(读卡住!)进行测试并在结果哈希中声明每个嵌套的哈希值.我想我需要一个没有问题的递归函数,但我无法理解如何在结果哈希中测试正确的级别.
由于我正在编写的应用程序可以有任意数量的'_'因此嵌套我需要想出一个光滑的方法来做这个,我想不出怎么做.
有没有人之前遇到过这样的事情并有任何建议?
也许是这样的事情?
$string = 'UK_Kent_Margate'
$result = @{}
$Parts = $string.split('_') 
0..($parts.count -1) |
foreach {
          iex "`$result.$($parts[0..$_] -join '.') = @{}"
        }
为了帮助理解它的工作原理,只需删除iex(invoke-expression),然后输出它要创建的字符串来执行:
$string = 'UK_Kent_Margate'
$result = @{}
$Parts = $string.split('_') 
0..($parts.count -1) |
foreach {
          "`$result.$($parts[0..$_] -join '.') = @{}"
        }
$result.UK = @{}
$result.UK.Kent = @{}
$result.UK.Kent.Margate = @{}
| 归档时间: | 
 | 
| 查看次数: | 671 次 | 
| 最近记录: |