1

在我启动 PowerShell 时加载的个人 PowerShell 配置文件中,我想通过调用一个函数来包含一组函数。

所以我想做这样的事情:

function loadMyFunctions{
    . \MyFunctions.ps1
}

现在,MyFunctions.ps1我有一个功能:

function bobtest{
    write-host "My name is Bob Newhart."
}

我能够加载脚本 MyFunctions.ps1,但加载后我无法bobtest在控制台中调用 - 我收到错误消息The term bobtest is not recognized...

但是,如果我只是在函数外部加载脚本,则该脚本已加载并且我可以bobtest正常调用 - 但这意味着我不能在加载MyFunctions配置文件时不加载 - 我必须加载MyFunctions并且无法选择。

你看,我想按需加载其他功能,直到我选择它们才可用。

还有其他方法可以做到这一点,或者甚至可以做到吗?

4

2 回答 2

3

看看这个页面,如何创建 PowerShell 模块和清单。

这将使您能够创建一个具有所有自定义功能的模块!然后在您的loadMyFunctionscmdlet 中添加Import-Module NewModuleName.

这将使您能够使用您的 cmdlet。

希望这会有所帮助,拉克兰

于 2016-12-16T03:47:00.880 回答
1

最好的方法是使用模块。但是,如果您想以不同的方式获得,那么您可以尝试使用您的方法。

请参阅我执行的以下屏幕截图。

我有一个函数加法,它只是做加法,我把它保存为funct1.ps1

现在我正在从另一个脚本的另一个函数中调用相同的函数,只是使用点源而不使用 as 模块,结果我得到了正确的结果。

功能1.ps1

在此处输入图像描述

从另一个脚本中的另一个函数触发该函数。

在此处输入图像描述

希望能帮助到你...!!!

于 2016-12-16T06:47:13.660 回答