将单独的值作为数组添加到组合框

时间:2018-10-19 15:34:05

标签: powershell foreach combobox

我的目标是按名称从我的打印服务器中获取打印机列表,并将它们作为单独的项目添加到组合框中,以供用户选择。这是我想出的,但是没有用:

$Hospital        = Get-Printer -ComputerName servername | where{$_.Name -like “*Name*”} | format-list name

$ComboBox_Location.Add_Click{

    switch ($ComboBox_Location.SelectedItem){
    "Hospital"{
        $ComboBox_Printer.Clear();
            foreach($Name in $Hospital){
            $ComboBox_Printer.Items.Add($Name.Name)
            }
        }
    }
}

我认为它与“ foreach”有关,但是我不太理解。我见过类似的东西

foreach($Name in $Names)

,我不明白如何通过减去一个字母来在变量中进行搜索?我不知道。此列表中有40多台打印机,我希望它们中的每一个都作为单独的项出现在此组合框中。

1 个答案:

答案 0 :(得分:0)

您的代码无法正常工作,因为您已将| format-list放在$Hospital = ..行的末尾。这正在将对象类型更改为格式化对象,除了显示以外对其他所有对象均无用。

删除| format-list,在我看来您的代码应该可以正常工作。

您正确使用了ForEach。 “魔术”就是在循环的每次迭代中填充您决定使用的任何变量。因此,如果您有$Names的集合,那么ForEach ($Name in $Names) { .. }将经历$Names集合,并且一次将其包含的每个对象放入$ Name中,然后可以在$ Name中使用它。花括号以根据需要引用/操作/输出。因此,只要您在$Name内始终使用ForEach,就可以随意使用它。