|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Обработка коллекции через foreach () |
|
|
PowerShell - Обработка коллекции через foreach ()
|
Пользователь Сообщения: 126 |
Давно не брался за PS, все подзабыл.
Создаю коллекцию: $A = @{ "123" = "цифры"; "абв" = "буквы"; "-=?" = "знаки"; } Вот как перебрать $Key in $A.Keys и $Value in $A.Values разом? Пытаюсь делать через foreach () {}, выходит какае-то чепуха. Точнее, ничего не выходит. Заранее спасибо. |
|
Отправлено: 10:28, 25-06-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать rudimko, непонятно, чего Вы хотите. Что значит — «в одном цикле сразу»? Зачем тут вообще цикл?
|
Отправлено: 14:08, 25-06-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Прошу меня извинить, неверно объяснил чего я хочу. Постарался исправить в первом посте. Необходимо в поочередно заносить значения из $A.Keys в $Key и из $A.Values в $Value. Не могу сделать сразу одним перебором по переменной. :-\
|
Отправлено: 14:24, 25-06-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать rudimko, опять-таки непонятно — зачем «поочерёдно»? В чём смысл сего действа, почему не разом? Поясните.
|
Отправлено: 14:32, 25-06-2013 | #4 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать А мне нужно будет при переборе выполнить различные действия с параметрами которые будут записаны в $Key и $Value, главное чтобы они соответствовали друг другу.
Смысл к примеру: $key = название, $value = путь Пытался сделать так foreach ($value in $a.values) { foreach ($key in $a.keys) { write-host "$key соответствует $value" } } |
|
Отправлено: 15:00, 25-06-2013 | #5 |
Ветеран Сообщения: 1758
|
|
Отправлено: 17:23, 25-06-2013 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:06, 25-06-2013 | #7 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Iska, ага, что-то вроде того, но мне надо еще занести в отдельную переменную.
Что вообще я пытаюсь изобразить: $hashPath = @{ "Server1" = "\\server1\share"; "Server2" = "\\server2\share"; } $tempDir = "d:\temp" $backupDir = "d:\fileServer_backup" if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) { Write-Host "$env:ProgramFiles\7-Zip\7z.exe не обнаружен." } set-alias sz "$env:ProgramFiles\7-Zip\7z.exe" sz a -tzip -w"$tempDir" "$backupDir\server1\share\archive.zip" "\\server1\share\*" sz a -tzip -w"$tempDir" "$backupDir\server2\share\archive.zip" "\\server2\share\*" Но вот чтобы не писать по сто раз команду "sz...", хотелось бы собирать данные из коллекции, чтобы архивирование проходило одной строчкой с перебором. "$backupDir\server2\share\archive.zip" - подчеркнутое бралось из $hashPath.Values "\\server2\share\*" - из $hashPath.Keys |
Отправлено: 18:40, 25-06-2013 | #8 |
Ветеран Сообщения: 1758
|
Цитата rudimko:
Но вот чтобы не писать по сто раз команду "sz..." » Ну так и прогони через цикл именнованный массив (хоть можно обойтись и простым) $hashPath: |
Последний раз редактировалось Foreigner, 25-06-2013 в 19:37. Отправлено: 19:07, 25-06-2013 | #9 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Foreigner, Спасибо, как вариант очень годно...
Но хотелось бы еще как-то использовать foreach, чтобы при переборе параметров, в переменную $key присваивались значения из $hashPath.Keys и значению $value присваивались значения из $hashPath.Values, ПО ПОРЯДКУ!!!. Это даже уже для общего образования надо понять. ![]() Добавил чуть попозже: Блин, как я читал? Между строк, наверное. Iska, спасибо. |
Последний раз редактировалось rudimko, 25-06-2013 в 19:24. Отправлено: 19:19, 25-06-2013 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Обработка команды в CMD через VBS | KaKTuZ49 | Скриптовые языки администрирования Windows | 2 | 12-12-2011 14:37 | |
[решено] Добавление своей коллекции шрифтов при установке WindowsXP | projectsoft | Автоматическая установка Windows 2000/XP/2003 | 16 | 21-09-2010 07:01 | |
.NET - Перекрытие области видимости в цикле foreach | Delirium | Программирование и базы данных | 2 | 18-09-2010 02:06 | |
Обработка субдоменов через .htaccess | Dimonweb | Вебмастеру | 3 | 08-02-2007 21:40 |
|