动态变量属性

时间:2017-03-29 14:45:10

标签: powershell

我在foreach循环中生成一个变量,其名称是动态的,我需要设置属性

$variableName.text = "ipsum"  

然后我需要添加属性,但只需使用

names

将设置$ variableName的属性而不是创建的变量。

2 个答案:

答案 0 :(得分:4)

您应该能够使用Get-Variable cmdlet对-ValueOnly参数执行此操作,以便获取返回的变量,而不是包含变量属性的对象:

(Get-Variable $variableName -ValueOnly).text = "ipsum"

请注意,您的代码中还存在一个错误:

New-Variable -Name $variableName -Value New-Object System.Windows.Forms.Label

需要:

New-Variable -Name $variableName -Value (New-Object System.Windows.Forms.Label)

<强>截图:

Accessing a dynamically named variable with PowerShell

答案 1 :(得分:1)

你也可以这样做

$listLabel=@{}

for ($i = 1; $i -lt 99; $i++)
{ 
   $listLabel[$i]+=New-Object System.Windows.Forms.Label
   $listLabel[$i].Name="Res$i" 
   $listLabel[$i].Text="Text for $i" 
}