我可以在Powershell中像myModule.MyFunction()这样的导入模块中明确地调用函数吗?

时间:2012-12-06 08:32:08

标签: .net powershell module

如果我已将moduleFoo导入到我的脚本中,其中有一个函数Bar()。

我能否以某种方式调用此函数:

moduleFoo.Bar

而不是

Bar

这样,阅读脚本的人可以理解这个Bar被调用的模块?

2 个答案:

答案 0 :(得分:1)

您可以将您的功能名称赋予:

moduleFoo.Bar # prefixing each function in your module with the module name + .

但这不符合函数或cmdlet(verb-noum)的标准PowerShell命名约定。

您还可以使用modulefoo.

创建功能/ cmdlet前缀的别名

如果您只需要知道函数/ cmdlet所属模块的名称,您可以使用:

(gcm bar).Modulename

答案 1 :(得分:1)

如果使用-AsCustomObject开关导入模块,可以像$ moduleFoo.Bar一样调用它:

$moduleFoo = Import-Module moduleFoo -AsCustomObject
$moduleFoo.Bar

另一种选择是使用命令全名(module \ command)来调用它:

PS> moduleFoo\Bar