gpt4 book ai didi

powershell - PowerShell 中的嵌套哈希表导出?

转载 作者:行者123 更新时间:2023-12-01 03:21:00 25 4
gpt4 key购买 nike

我目前正在尝试创建一个易于阅读的文档,其中包含网络 (3k+) 上的所有设备。目前,我在嵌套哈希表中拥有所有数据,如下所示:

$devices = @{"hostname" = @{"Mac Address" = @{"IP Address" = "True or False"}}}

它将设备的主机名存储在 $devices 中。 .内 $hostname有一个哈希表,其中包含与该主机名关联的所有 MAC 地址。在 MAC 地址中有一个哈希表,其中包含与该 MAC 地址关联的所有 IP。

我已经创建了用于创建哈希表并存储数据的脚本的一部分。我遇到了一个障碍,将数据导出到可以在 Excel 中读取的 CSV 格式。
Hostname, Mac Address, IP Addressserver1, MM.MM.MM.SS.SS.SS , 1.1.1.1                             1.1.1.2         MM.MM.MN.SS.SS.SA , 1.1.1.3server2, MM.MM.MB.SS.SS.ST , 1.2.3.1                           , 1.5.2.1

and so on.

Edit:

foreach ($hostname in $devices.Keys) {
echo $hostname
foreach ($Macs in $devices.$hostname.Keys) {
echo $Macs
foreach ($IPs in $devices.$hostname.$Macs.Keys) {
echo $IPs
}
}
}

最佳答案

在最内层循环中创建自定义对象,在变量中收集输出,然后导出数据:

$csv = foreach ($hostname in $devices.Keys) {
foreach ($MAC in $devices.$hostname.Keys) {
foreach ($IP in $devices.$hostname.$Macs.Keys) {
[PSCustomObject]@{
'Hostname' = $hostname
'MAC Address' = $MAC
'IP Address' = $IP
}
}
}
}

$csv | Export-Csv 'C:\path\to\output.csv' -NoType

如果您希望输出与您的示例完全相同(我不推荐),您需要跟踪之前的 $hostname$MAC并创建空白对象属性,以防它们与各自的当前值匹配。

关于powershell - PowerShell 中的嵌套哈希表导出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45015674/

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