Добавление отдельных значений в виде массива в комбинированный список - PullRequest
0 голосов
/ 19 октября 2018

Моя цель - получить список принтеров с моего сервера печати по имени и добавить их в виде отдельных элементов в выпадающий список для выбора пользователем.Это то, что я придумал, но это не работает:

$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 голосов
/ 19 октября 2018

Ваш код не работает, потому что вы поставили | format-list в конце строки $Hospital = ...Это изменяет тип объекта для форматирования объектов, которые не нужны ни для чего, кроме отображения.

Удалите | format-list, и мне кажется, что ваш код должен работать в противном случае.

Вы используете ForEach правильно.«Волшебство» состоит в том, что любая переменная, которую вы решите использовать, заполняется на каждой итерации цикла.Так что если у вас есть коллекция $Names, то ForEach ($Name in $Names) { .. } будет проходить через коллекцию $Names и по одному помещать каждый содержащийся в ней объект в $ Name, который затем можно использовать внутри фигурных скобок для ссылки / манипулирования/ вывод, как вам требуется.Поэтому $Name можно называть как угодно, если вы постоянно используете его внутри ForEach.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...