我见过一些代码示例,它们允许从C#加载特定的PowerShell脚本,然后从脚本中调用特定的函数:
// "dot-source my functions"
ps.AddScript(". .\MyFunctions.ps1", $false)
ps.Invoke()我的问题是,既然已经执行了此操作,此文件中的所有函数都已全局加载;有没有办法从C#代码中将它们作为对象进行访问?
我希望能够从代码中看到哪些函数已经加载到全局上下文中,然后对它们进行分析(参见它们的参数列表等)。
这有可能吗?
谢谢Lior
发布于 2011-04-04 05:47:58
好的。有很多种方法。也许最简单的方法是调用"dir function:\“。现在,最后一句话可能会让你的面条有点不对劲,但我会这么做的。它返回一个FunctionInfo实例集合,其中包含大量元数据。
发布于 2011-04-04 09:26:52
如果您使用的是v2,另一个类似的选择是将您的PS1文件转换为PSM1 (PowerShell模块)。然后,在C#中可以使用以下命令
import-module path\to\module\myfunctions.psm1在那里,您可以发出以下命令
get-command -module myfunctionshttps://stackoverflow.com/questions/5531913
复制相似问题