![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Вернуть символические переменные из функции |
|
PowerShell - [решено] Вернуть символические переменные из функции
|
Пользователь Сообщения: 69 |
Доброго дня!
Есть код, который берет настройки скрипта из файла: #Выгребаем настройки из файла $f_set = [System.IO.File]::ReadAllText("$include_settings") $start = $f_set.IndexOf("$begin")+$begin.Length $end = $f_set.IndexOf("$stop") $f_res = $f_set.Substring($start, $end-$start) | ConvertFrom-StringData foreach ($key in $($f_res.keys)) { set-variable -name $key -value $f_res[$key] } Код в итоге создает (точнее переопределяет значения) переменные для работы скрипта. Он отлично отрабатывает, но этот вариант не является универсальным, хотелось бы завернуть его в функцию, дабы, указав другие входящие параметры, я мог бы использовать функцию с другими скриптами. Но, как я ни пытался, а переменные мне не вытащить из функции, проблема в том, что заблаговременно имя переменной неизвестно и вариант: Использовать не получится. Варианты с массивами и хэш-таблицами не подходят - придется переписывать весь имеющийся код + вид будет не комильфо + в коде не будет смысла - он сам работает с хэш-таблицей. Как осуществить возврат всех созданных переменных из функции? Спасибо. |
|
Отправлено: 23:13, 17-10-2014 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать 1) Объявить переменные уровня global,script(set-variable -Scope).
2) Вернуть hash-массив($f_res). Вообще слабо понимаю зачем создавать переменные заново, когда уже есть значения. |
Отправлено: 12:06, 18-10-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:43, 18-10-2014 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Не значение переменной $Dest, а значение ключа Dest. $f_res.Dest - можно и так, или если есть сильное желание создать уже переменную в не функции - set-variable -name $key -value $f_res[$key]
|
Отправлено: 15:14, 18-10-2014 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Переменные из файла | Deman4ig | Скриптовые языки администрирования Windows | 5 | 25-02-2013 22:36 | |
собрать переменные из цикла в одну переменную while | binders | Вебмастеру | 7 | 16-09-2011 20:11 | |
[решено] Пропадают переменные из форм | Bask76 | Вебмастеру | 5 | 26-07-2008 22:02 | |
CMD/BAT - [решено] как правильно передать переменные подпрограмме из цикла for | akrav | Скриптовые языки администрирования Windows | 4 | 07-01-2008 17:51 | |
Как переменные из одного скрипта передать ? | Kudryavcev Dmitry | Вебмастеру | 4 | 04-10-2003 03:10 |
|