我一直在用这种逻辑编写很多Powershell模块:
function Get-ModuleName
{
#main logic, calls other functions
CallOtherFunction
}
function CallOtherFunction
{
#does something else
}
我刚刚了解到,通过此示例,函数 CallOtherFunction 可以通过 powershell 命令行调用,就好像它是一个单独的模块一样。 这不是我预期的行为,我只希望 Get-ModuleName 可以访问 CallOtherFunction。
有没有办法重构我的代码以使其按我的预期工作?
为了限制模块外部可见的内容,请查看:
导出模块成员
和
模块清单(.psd1 文件(
使用这些函数,您可以对外部调用者隐藏特定函数,但模块中的所有函数(隐藏或其他方式(仍然可以调用它们。 这非常适合为您执行特定任务但您不希望其他人看到/使用的"帮助程序"函数。