gpt4 book ai didi

powershell - 如何在 PowerShell 中将分隔字符串转换为嵌套哈希表?

转载 作者:行者123 更新时间:2023-12-01 08:59:25 27 4
gpt4 key购买 nike

我正在努力寻找一种巧妙的方法将分隔字符串转换为哈希表。例如给定字符串:

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 = @{}

关于powershell - 如何在 PowerShell 中将分隔字符串转换为嵌套哈希表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21047772/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com