哈希表是 powershell 中存储配置项最常用、最直观的方式,用键直接映射值,语法为 @{},支持字符串、数字、布尔值、数组及嵌套结构,可通过方括号访问、修改、添加键,并能导出为 xml 或文本持久化。
在 powershell 基础中,哈希表是存储配置项最常用、最直观的方式——它用键(key)直接映射值(value),读写清晰,无需索引计算。
创建配置哈希表
用 @{} 语法定义,键名推荐用字符串(带引号更安全),值可以是字符串、数字、布尔值甚至数组:
- 基础写法:
$config = @{ "Server" = "prod-db.contoso.com"; "Port" = 1433; "Enabled" = $true } - 多行更易读(换行等效于分号):
$config = @{<br> "Timeout" = 30<br> "Retries" = 3<br> "LogPath" = "C:\Logs\App.log"<br>} - 含空格或特殊字符的键必须加引号:
"Max Connection Count" = 100
读取和修改配置项
通过方括号 [] 按键名访问,支持读取、赋值、添加新键:
- 读取:
$config["Server"]→ 返回"prod-db.contoso.com" - 修改已有项:
$config["Port"] = 1543 - 添加新配置:
$config["Environment"] = "Production" - 检查键是否存在:
$config.ContainsKey("Timeout")→ 返回$true或$false
保存和复用配置
把哈希表存为变量后,可反复使用;也可导出为文件供下次加载:
- 保存到变量后直接调用:
Write-Host "连接 $config['Server']:$config['Port']" - 导出为简单文本(适合人工查看):
$config | ConvertTo-String | Out-File config.ps1 - 更规范的持久化方式(推荐):
$config | Export-Clixml .\config.xml(二进制序列化)Import-Clixml .\config.xml(下次加载)
嵌套与结构化配置
复杂配置可用嵌套哈希表模拟层级关系,比如数据库+日志分开管理:
- 定义:
$config = @{ Database = @{ Host = "db01"; Port = 5432 }; Logging = @{ Level = "Info"; Rotate = $true } } - 访问:
$config.Database.Host→"db01";$config.Logging.Level→"Info" - 注意:这种点号访问只对
[ordered]字典或自定义对象更稳定;标准哈希表建议仍用["key"]形式避免意外











