我存儲了大量的依賴於其他變量的變量,這本身依賴於其他變量,就像這樣:訪問哈希表中的值相同的哈希表在PowerShell中
$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
有沒有一種方法,我可以訪問相同的哈希表內的哈希表的價值?感謝:-)
這不是很清楚我的想法爲什麼需要這樣做,但它也指出我正在使用下劃線(_)而不是點(。)。非常感謝 ! –
我的壞,它不起作用。您可能已嘗試多次,這會導致powershell註冊$ soft.version值。因此,當您引用$($ soft.version)時,powershell已經在內存中擁有整個$ soft哈希表。我不知道這對你是否清楚,但是嘗試打開一個新的ps會話,複製粘貼你的代碼並調用$ soft,你會看到。謝謝你嘗試! –
你完全正確,阿德里安。我很確定,PS不支持遞歸聲明,因爲當var被賦值給另一個var時,var的值是未知的。 – Martin