如何用PowerShell读取含哈希表数组的文件并提取县区的城市与州信息?
解决PowerShell读取哈希表数组并遍历输出的问题
问题描述
你有一个包含哈希表数组定义的PowerShell文件,内容如下:
[hashtable[]]$Counties = @( @{"County1" = @{"City"="New York" "State"="NY" } }, @{"County2" = @{"City"="Miami" "State"="FL" } }, @{"County3" = @{"City"="Orlando" "State"="FL" } } )
需要读取该文件,遍历每个县(County1、County2等),提取对应的城市和州信息,输出格式如下:
Name City State County1 New York NY County2 Miami FL County3 Orlando FL
解决方案
可以通过以下步骤实现:
- 加载文件变量:使用PowerShell的点源操作(
.)读取并执行目标文件,将$Counties变量加载到当前会话。 - 遍历哈希表数组:逐个处理数组中的每个哈希表,提取县名、城市和州信息。
- 构造结构化输出:将提取的信息封装为自定义对象,再通过
Format-Table输出符合要求的格式。
完整脚本示例
假设目标文件名为CountiesData.ps1,脚本代码如下:
# 加载目标文件中的变量 . .\CountiesData.ps1 # 遍历并提取信息,生成格式化输出 $Counties | ForEach-Object { $countyName = $_.Keys[0] $city = $_.$countyName.City $state = $_.$countyName.State [PSCustomObject]@{ Name = $countyName City = $city State = $state } } | Format-Table -AutoSize
输出效果
执行上述脚本后,会输出符合预期的格式化内容:
Name City State ---- ---- ----- County1 New York NY County2 Miami FL County3 Orlando FL
内容的提问来源于stack exchange,提问作者SqlData
相关产品推荐
相关产品推荐

