【问题标题】:Powershell incrementing counter on variables [duplicate]Powershell在变量上递增计数器[重复]
【发布时间】:2019-09-13 17:30:42
【问题描述】:

是否可以在 Powershell 中增加变量对象的计数?

例子:

$var1 = "This"
$var2 = "Is"
$var3 = "A Test"

1..3 | ForEach-Object {$var$_ = DoSometing}

我问这个的原因是因为我正在使用system.Windows.Forms.CheckBox 创建一个 GUI。我在变量中有几个复选框对象,它们以我想要操作的数字结尾。

$Checkbox1
$Checkbox2
$Checkbox3
$Checkbox4

我想知道是否有 干净 以及使用Foreach-Object 操作这些对象的好方法。而不是单独操作每个对象。

【问题讨论】:

  • 您尝试做的事情是不明智的。不要这样做。请改用数组:$var = 1..3 | ForEach-Object { DoSomething }.
  • 不要认为New-variable 在这里会有很大帮助。我认为对于您的用例,您可以更好地遍历 Form 对象内的控件。例如:$Form.Controls。只需遍历所有控件,然后按名称、类型或组进行检查。希望对您有所帮助!

标签: powershell


【解决方案1】:

如果确实需要创建变量,可以使用New-Variable 命令来完成。

Foreach ($z in (1..3)) {
    New-Variable -Name "Var$z" -Value $z
}

$var1,$var2,$var3
1
2
3

如果您需要检索或更新已存在变量的值,则同样可以使用Get-VariableSet-Variable

Foreach ($z in (1..3)) {
    Set-Variable -Name "Var$z" -Value "Updated $z"
    Get-Variable "Var$z" -ValueOnly
}

Updated 1
Updated 2
Updated 3

【讨论】:

  • 变量已经创建并包含数据。如果可能的话,我想循环操作变量 1 到 9 的数据。或者,我可以以正常方式操作数据,但这会创建 很多 额外代码并在脚本更改时工作。
猜你喜欢
  • 2023-04-10
  • 2019-04-05
  • 2023-02-19
  • 2013-04-14
  • 1970-01-01
  • 2020-01-07
  • 1970-01-01
  • 2017-06-27
  • 1970-01-01
相关资源
最近更新 更多