如何在PowerShell脚本中调用外部文件中的Hashtable?
在PowerShell中从外部文件加载哈希表并获取值
下面分别说明使用.psd1和.psm1文件存储哈希表并在脚本中调用的方法:
一、使用.psd1文件(推荐用于纯数据存储)
.psd1是PowerShell数据文件,专门用于存储结构化数据,安全性高(默认不会执行脚本代码),适合存放哈希表这类配置数据。
步骤1:创建.psd1文件
新建一个文件(比如ConfigData.psd1),将你的两个哈希表封装到一个顶层哈希表中:
@{ hash1 = @{ "TEST_A1" = "A1_XXXX" "TEST_A2" = "A2_YYYY" } hash2 = @{ "TEST_B1" = "B1_XXXX" "TEST_B2" = "B2_YYYY" } }
步骤2:在脚本中加载并获取值
使用Import-PowerShellDataFile命令加载文件,然后直接通过键名访问目标值:
# 加载psd1文件 $configData = Import-PowerShellDataFile -Path ".\ConfigData.psd1" # 获取hash1中TEST_A1的值 Write-Output $configData.hash1.TEST_A1 # 获取hash2中TEST_B2的值 Write-Output $configData.hash2.TEST_B2
二、使用.psm1文件(适合附带逻辑的场景)
.psm1是PowerShell模块文件,可以定义变量、函数等,适合需要在存储哈希表的同时添加相关处理逻辑的场景。
步骤1:创建.psm1文件
新建一个文件(比如HashtableModule.psm1),写入你的哈希表并导出变量:
# 定义哈希表 $hash1 = @{ "TEST_A1" = "A1_XXXX" "TEST_A2" = "A2_YYYY" } $hash2 = @{ "TEST_B1" = "B1_XXXX" "TEST_B2" = "B2_YYYY" } # 导出变量,让外部脚本可以访问 Export-ModuleMember -Variable hash1, hash2
步骤2:在脚本中加载并获取值
使用Import-Module加载模块,之后直接使用变量访问哈希表的值:
# 加载psm1模块 Import-Module -Path ".\HashtableModule.psm1" # 获取hash1中TEST_A1的值 Write-Output $hash1.TEST_A1 # 获取hash2中TEST_B2的值 Write-Output $hash2.TEST_B2
内容的提问来源于stack exchange,提问作者jarodas2004
相关产品推荐
相关产品推荐

