【发布时间】:2019-06-17 07:44:35
【问题描述】:
我正在尝试从如下所示的哈希表中获取一个值。
$Hashtable1AuthTestID = @{
"BID_XPI" = "(id 2)";
"MBID_XPI" = "(id 3)";
"T_XPI" = "(id 4)";
"ST_XPI" = "(id 5)";
"SI_XPI" = "(id 6)";
"T_SAML" = "(id 7)";
"ST_SAML" = "(id 8)";
"SI_SAML" = "(id 9)";
"BID_SAML" = "(id 10)";
"MBID_SAML" = "(id 11)";
}
如果我使用$Hashtable1AuthTestID.BID_XPI,它会正常工作,但由于这将是用于几种不同类型的数据(和环境)的通用脚本,我想在调用哈希表时包含几个变量,如下面的那个。
# Without variables (Example): $Hashtable1AuthTestID.BID_XPI
# With variables (Example): $<Hashtable><Type><Environment>.<Method>
$hashtable = "Hashtable1"
$type = "Auth"
$environment = "Test"
$method = "BID_XPI"
# ID is the example is a string.
$'$hashtable1'$environment"ID".$method
$$hashtable1$environment+"ID".$method
我已经测试了几种不同的方法,但无法正常工作。我确实得到了正确的语法(如果我从变量中打印值),例如$Hashtable1AuthTestID.BID_XPI,但我没有从哈希表((id 2))中得到实际值。
【问题讨论】:
-
您在示例哈希表中重复了
S_XPI键,可能需要更正。 -
$environment = "Test"缺少ID。如果你用这些变量构建字符串,你会得到$Hashtable1AuthTest.BID_XPI而不是$Hashtable1AuthTestID.BID_XPI
标签: powershell hashtable