【问题标题】:How do I combine multiple variables in an If statement?如何在 If 语句中组合多个变量?
【发布时间】:2016-08-19 22:11:16
【问题描述】:

所以我正在 PowerShell 中开发一个简单的用户界面。非常类似于这篇文章: Powershell - How to invoke a checkbox windows with multiple choice

问题是,我有更多选择可供选择,而不仅仅是 3 个。例如,假设我有 10 个。这是我当前的问题代码:

注意第 43-68 行。

https://gist.github.com/preciselyprecise/89a202f928b2e70ea925439f61db9e56

我想做一些类似于第 29-42 行注释代码块的事情。问题是我不确定如何将 FOR 循环中的变量 $i 与 $checkBox# 变量结合起来。我看到的另一个可能的选择是我可以组合一个字符串“checkBox”并简单地将 $i 连接到末尾;问题是我不知道如何让 FOR 循环将该解决方案解释为一个条件而不是一个字符串。

非常感谢任何帮助!请记住,我是 powershell 和 StackOverflow 的新手,所以如果我违反了规则或做错了什么,请说出来:)。

【问题讨论】:

标签: powershell


【解决方案1】:

我没有对此进行测试,但是如果您取出 $s 变量,您评论的代码似乎可以工作。

for ($i=0; $i -le 11; $i++) {
    $v = Get-Variable -Name "checkBox$i" -valueonly
    if ($v.Checked) {
        $listBox1.Items.add("Checkbox $i is checked")
    }
    else {
        echo Question
    }
}

但是,我可能建议将复选框存储在数组中,而不是编号变量中。像这样的:

#make the array
$checkboxes = @()
1..11 | % { 
  $checkboxes += New-Object System.Windows.Forms.CheckBox
  $checkboxes.Name = "CheckBox$_"
}

#and then get the values
foreach($checkbox in $checkboxes)
{
  if($checkbox.Checked)
  {
    $listBox1.Items.add("$($checkbox.Name) is checked")
  }
}

【讨论】:

  • 这行得通!非常感谢您的快速回复。我想在我选择“正确”答案之前,我会等着看其他人是否以更好的方式回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-12
  • 2014-06-08
  • 2019-01-12
  • 1970-01-01
相关资源
最近更新 更多