我在foreach循环中生成一个变量,其名称是动态的,我需要设置属性
$variableName.text = "ipsum"
然后我需要添加属性,但只需使用
names
将设置$ variableName的属性而不是创建的变量。
答案 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)
<强>截图:强>
答案 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"
}