我正在编写用于生成报告的 PowerShell 脚本,我正在加载和调用最终用户提供的模块。
首先我调用用户提供的设置函数,然后加载模块:
# Load user provided modules
($userModules = Get-ChildItem ($userModHome + "*.psm1")) | ForEach-Object { Import-Module (join-path $userModHome $_.Name) } | Out-Null
调用 setup 和 loading 后,我遍历模块列表并调用每个模块。这一切都是直截了当的,但我想要完成的不是函数需要的所有东西都需要全局变量。
我可以要求 setup 函数返回一个包含任何函数可能需要的所有内容的对象,然后将该数据结构传递给每个模块,但这可能会传递很多额外的东西。
我想知道是否有某种方法可以在运行时确定将什么传递给模块,或者其他一些优雅的解决方案来动态加载和执行模块而不使用全局变量。
简而言之,我想我在问 Powershell 是否有反射可用于确定模块的详细信息然后调用。我假设的困难部分是确定传递特定模块的参数。