在PowerShell中访问同一哈希表中的哈希表值

时间:2016-09-22 12:36:37

标签: powershell scripting hashtable

我存储了许多依赖于其他变量的变量,这些变量本身依赖于其他变量,如下所示:

$soft_version = "5.8.2"
$soft_filename = "somesoft-${soft_version}.exe"
$soft_path = "/some/path/$soft_filename"
$soft_call_args = "/S /forcerestart"

我想将它存储在哈希表中,以便我可以更轻松地访问这些值:所以我尝试了以下

$soft = @{
version="5.8.2";
filename="somesoft-${soft.version}.exe"
path="/some/path/$soft.filename"
call_args = "/S /forcerestart"
}

这样我就可以访问这样的值:

$soft.version
$soft.filename
$soft.path
$soft.call_args

但它似乎不起作用,相应的键仍为空:

$soft

Name                           Value                                                                                               
----                           -----                                                                                               
filename                       somesoft-.exe
path                           /some/path/
call_args                      /S /forcerestart
version                        5.8.2

有没有办法可以在同一个哈希表中访问哈希表的值?谢谢: - )

2 个答案:

答案 0 :(得分:1)

尝试用括号括起来,这对我有用(PSVersion 5):

$soft = @{
version="5.8.2";
filename="somesoft-$($soft.version).exe"
path="/some/path/$($soft.filename)"
call_args = "/S /forcerestart"
}

<强>结果

$soft

Name                           Value   
----                           -----
filename                       somesoft-5.8.2.exe
path                           /some/path/somesoft-5.8.2.exe
call_args                      /S /forcerestart
version                        5.8.2

答案 1 :(得分:0)

您还可以使用新的v5类或自定义对象

PowerShell: Creating Custom Objects