如何按需加载PowerShell函数?

How to Load PowerShell Functions On-Demand?

在我每次启动 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但无法选择。

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

还有其他方法可以做到吗?

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

这将使您能够创建一个包含所有自定义函数的模块!然后在 loadMyFunctions cmdlet 中添加 Import-Module NewModuleName.

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

希望这对您有所帮助, 拉克伦

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

查看下面我执行的屏幕截图。

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

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

Funct1.ps1

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

希望对您有所帮助...!!!