|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Создание переменной (коллекции) с несколькими значениями |
|
PowerShell - [решено] Создание переменной (коллекции) с несколькими значениями
|
Пользователь Сообщения: 126 |
Друзья, подскажите, как создать переменную с несколькими значениями, что бы их было 4-5 или больше? Умею создавать только хэштейбл ($var = @{a=1;b=2;}), но там только (2 значения) Name и Value... Спасибо.
|
|
Отправлено: 10:20, 16-01-2014 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Вопрос непонятен. Если требуется создать объект с заданными свойствами, то можно воспользоваться например(так методов много):
1) $Object = New-Object PSObject $Object | add-member Noteproperty a1 1 $Object | add-member Noteproperty a2 2 $Object | add-member Noteproperty a3 3 $Object | add-member Noteproperty a4 4 $Object | add-member Noteproperty a5 5 2) $Object = New-Object PSObject -Property @{ a1 = 1 a2 = 2 a3 = 3 a4 = 5 a5 = 5 } 3) $Object = "" | Select @{n="a1";e={1}},@{n="a2";e={2}},@{n="a3";e={3}},@{n="a4";e={4}},@{n="a5";e={5}} 4) Для PowerShell v3 и выше: $Object = [pscustomobject]@{a1=1; a2=2; a3=3; a4=4; a5=5} |
Отправлено: 10:58, 16-01-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Прошу прощения за тавтологию...
Хочу немного другого результата добиться: Допустим выполняется цикл в котором создаются переменные и им присваиваются определенные значения: foreach ($connection in $connections) { $SessionID = $connection.SessionID $infoBase = $connection.infoBase.Name $MemorySize = $connection.process.MemorySize $processPID = $connection.process.PID } Мне необходимо создать одну переменную, которая сможет в себе сохранить параметры этих переменных из всего цикла, то есть переменная должна иметь примерно вот такой вид - Name = $SessionID Param1 = $InfoBase Param2 = $MemorySize Param3 = $processPID Типа такой структуры в переменной: Name | Param1 | Param2 | Param3 Выглядить в целом примерно так: Name1 | Base1 | 4123123 | 4321 Name2 | Base2 | 4123123 | 4321 Name3 | Base3 | 4456763 | 6479 ... Моих знаний хватает лишь на 2 значения ![]() ![]() Я так понимаю нужно как-то плюсовать значения переменной в цикле, но как вот построить такую структуру, возможно ли? |
Последний раз редактировалось rudimko, 16-01-2014 в 12:14. Отправлено: 12:03, 16-01-2014 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:55, 16-01-2014 | #4 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Здорово, но есть затык небольшой...
К примеру вывожу переменную: $con | format-list Как задать названия для заголовков правильно? Написал до цикла: Заголовки появились, но первым значением в коллекции переменной идут значения из заголовков, только потом полезные данные. Еще вопрос... Можно ли как-то объединить данные в этой переменной, как бы слить, например: есть несколько одинаковых значений "ProcessPID" и "MemorySize", но значения "InfoBase" и "SessionID" разные, можно ли соединить их? Ну например значение "ProcessPID" и "MemorySize" останется таким же, а "InfoBase" будет сливаться (добавляться) - "V8_BASE_1, V8_BASE_2", так же и "SessionID" - "3615, 107653" Например, что бы выглядело не так: А вот так: Kazun, спасибо, хэлп. |
|
Последний раз редактировалось rudimko, 16-01-2014 в 15:08. Отправлено: 14:01, 16-01-2014 | #5 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать "Название Свойства" = Значение
Я же привел пример выше уже. $con += New-Object PSObject -Property @{ "SessionID" = $nameSessionID "InfoBase" = $nameInfoBase "MemorySize" = $nameMemorySize "ProcessPID" = $nameProcessPID } $con = $con | group ProcessPID | Foreach { if($_.Count -gt 1) { New-Object PSObject -Property @{ "SessionID" = ($_.Group | Foreach {$_.SessionID}) -join "," "InfoBase" = ($_.Group | Foreach {$_.InfoBase}) -join "," "MemorySize" = ($_.Group | Foreach {$_.MemorySize}) -join "," "ProcessPID" = $_.Name } } else { $_.Group } } |
Отправлено: 15:08, 16-01-2014 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. | NiOl | Скриптовые языки администрирования Windows | 7 | 31-01-2019 19:58 | |
Создание 1 учетной записи с несколькими сеансами на разных ПК | Jeck90 | Хочу все знать | 1 | 01-08-2013 00:20 | |
Создание мультизагрузки с несколькими различными svcpack.inf | minutka15 | Автоматическая установка Windows 2000/XP/2003 | 12 | 11-09-2010 18:43 | |
Общее - Создание загрузочного USB HDD с несколькими осями | advokcat | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 5 | 10-12-2009 09:12 | |
[статья] Создание переменной среды, соответствующей букве установочного диска | Vadikan | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 0 | 17-01-2009 18:21 |
|