2016-10-25 141 views
0

我在使用Get-Variable引用對象屬性而不使用
任何人都知道如何做到這一點?通過變量引用對象屬性

$myObject = New-Object -TypeName PSObject -Property @{ 
    url    = 'TESTURL' 
    webResponse  = '' 
} 

$objName = 'myObject' 

Write-Host Attempt1 
(Get-Variable -Name $objName -ValueOnly).url  # this works, yields TESTURL. 

Write-Host Attempt2 
$($objName).url # this fails, $($objName) returns a string instead of an object 

我期待$($objName)返回一個對象,但它返回一個字符串代替。

+0

嘛,當然,$ objname是你的對象的名稱。 '$ myObject.url'應該可以工作。 – ESG

回答

2

$objName是字符串,您自己將其定義爲字符串。你如何處理Get-Variable正在得到一個名爲myObject的變量。您從Get-Variable獲得的值是正確類型的實際變量。正如已經指出的那樣,$myObject.url將起作用。

比較它讓我們說一句話apple和實際成果

+0

我知道'$ myObject.url'可以工作。但問題是我有一些具有URL屬性的對象。我也有一個包含對象名稱的數組。我想循環這些名稱並訪問相應的對象,設置URL。最好不使用Get-Variable。沒有其他辦法嗎? –

+0

沒有什麼能阻止你做'$ variable1 = Get-Varable $ name1'然後'$ variable1.property' –

+0

你也可以使用一個數組或變量字典和循環 – JPBlanc