假设我在模块中有以下代码(称为 MyModule.psm1,位于模块的适当位置):
function new-function{
$greeting='hello world'
new-item -path function:\ -name write-greeting -value {write-output $greeting} -Options AllScope
write-greeting
}
导入模块并运行 new-function 后,我可以成功调用 write-greeting 函数(由 new-function 创建)。
当我尝试在 new-function 调用范围之外调用 write-greeting 函数时,它会失败,因为该函数不存在。
我试过点源新功能,但这没有帮助。我已经提供了-option Allscope
, 但显然它只包含在子范围中。
我还尝试使用 export-modulemember write-greeting 明确地遵循 new-item 调用,它不会给出错误,但也不会创建函数。
我希望能够从模块内的函数动态地创建一个函数(即通过 new-item,因为函数的内容和名称将根据输入而有所不同),并且新创建的函数可用于在模块外调用。
具体来说,我希望能够做到这一点:
Import-module MyModule
New-Function
write-greeting
并将“hello world”视为输出
有任何想法吗?