Я работаю над скриптом PowerShell для генерации отчетов, я загружаю и вызываю модули, предоставляемые конечным пользователем.Сценарий PowerShell и модули загрузки/вызова во время выполнения
Сначала я вызвать функцию при условии, пользовательской настройки, а затем загрузить модули:
# Load user provided modules
($userModules = Get-ChildItem ($userModHome + "*.psm1")) | ForEach-Object { Import-Module (join-path $userModHome $_.Name) } | Out-Null
После вызова настройки и загрузки, I цикл по списку модулей и назвать каждого из них. Все это прямолинейно, но то, что я хотел бы выполнить, не требует глобальных переменных для всего, что потребуется функции.
Я мог бы потребовать, чтобы функция настройки возвращала объект, который содержит все, что может понадобиться любой функции, а затем передает эту структуру данных в каждый модуль, но это, возможно, передаёт много лишнего материала.
Мне интересно, можно ли во время выполнения определить, что передать модулю или какое-то другое элегантное решение для динамической загрузки и выполнения модулей без использования глобальных переменных.
В двух словах я думаю, что спрашиваю, может ли Powershell иметь отражение, чтобы определить детали модуля, а затем позвонить. Трудная часть, которую я предполагаю, определяет, какие параметры передать конкретный модуль.
Что я пытаюсь определить, есть ли способ, чтобы определить, во время выполнения детали модуля и как назвать его прохождение в любом параметры, которые могут потребоваться. В двух словах Powershell имеет какой-либо способ использовать отражение, чтобы определить детали модуля, а затем позвонить. – RShearer