我可以创建一个可以在导入模块中点源到父脚本的函数吗?

时间:2012-12-04 14:03:31

标签: .net powershell

我已将模块“ModuleFoo.psm1”导入我的脚本:“ModuleBar.ps1”

我调用导入模块中的一个方法来执行点源操作BarFunction.ps1:

function Dot-SourceBarFunction()
{
. "\BarFunction.ps1"
}

我是否可以从父作用域访问此BarFunction.ps1:ModuleBar.ps1?

1 个答案:

答案 0 :(得分:1)

这应该正常工作,例如:

-- Outer.ps1 --
Import-Module $PSScriptRoot\module.psm1
Get-Foo


-- Module.psm1 --
. $PSScriptRoot\inner.ps1


-- Inner.ps1 --
function Get-Foo {
    "$($MyInvocation.MyCommand.Name) called"
}

这会输出Get-Foo called。函数默认为模块中的公共可见性,因此当您对在模块中引入函数的脚本进行点源时,这些函数会自动公开。