【问题标题】:Powershell - Changing form item properties in a foreach loop dynamicallyPowershell - 在foreach循环中动态更改表单项属性
【发布时间】:2016-10-03 21:21:12
【问题描述】:

我有一个包含 12 个标签的表单中的项目集合,我有一个包含 12 个对象的列表,我想为每个标签分配值。我想我需要一些具有这种逻辑的东西: ($label1、$label2 等)

foreach ($i in $objects) {
  $label($i).Content = "$($object[$i].Name)"
}

我无法将第一部分解析为 $label1。我尝试使用 New-Variable 以及转义字符和括号/括号的各种组合为其分配一个新变量,但无济于事。有没有办法做到这一点,还是我必须重新检查整个事情的逻辑?

【问题讨论】:

    标签: loops powershell variables dynamic nested


    【解决方案1】:

    $i in $objects 是你的问题。 $i 将不是一个数值,而是一个对象。所以不能作为索引使用。

    for ($i = 0; $i -lt $objects.count; $i++) {
       $label[$i].Content = $objects[$i].Name
    }
    

    (未经测试,但这个想法应该可行;))

    【讨论】:

    • 感谢您的意见。我不认为我们在想同样的事情。代码块中的第一行需要是 $label1,而不是 $label[1]。我实际上并不希望它成为索引,而是变量名的一部分。我现在已经找到了一种解决方法,但是当我得到一个好的解决方案时,我会继续努力并更新 OP。
    • 啊,现在我明白了。 New-Variable -Name "Label$i" -Value "$objects[$i].Name" 应该可以正常工作。但是,如果您想在新变量中添加 .Content 属性,您当然必须先添加它。如果您可以显示 $objects 的内容,这可能会更容易。
    猜你喜欢
    • 2013-03-21
    • 1970-01-01
    • 2017-11-04
    • 2020-06-05
    • 1970-01-01
    • 2013-02-01
    • 2017-12-13
    • 1970-01-01
    • 2020-06-07
    相关资源
    最近更新 更多