如何按需加载PowerShell函数?

如何按需加载PowerShell函数?,powershell,include,powershell-module,Powershell,Include,Powershell Module,在每次启动PowerShell时都会加载的个人PowerShell配置文件中,我希望通过调用函数来包含一组函数 所以我想这样做: function loadMyFunctions{ . \MyFunctions.ps1 } 现在,在MyFunctions.ps1中,我有一个函数: function bobtest{ write-host "My name is Bob Newhart." } 我可以加载脚本MyFunctions.ps1,但加载后我无法在控制台中调用bobte

在每次启动PowerShell时都会加载的个人PowerShell配置文件中,我希望通过调用函数来包含一组函数

所以我想这样做:

function loadMyFunctions{
    . \MyFunctions.ps1
}
现在,在
MyFunctions.ps1
中,我有一个函数:

function bobtest{
    write-host "My name is Bob Newhart."
}
我可以加载脚本MyFunctions.ps1,但加载后我无法在控制台中调用
bobtest
-我收到错误消息
术语bobtest无法识别…

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

你看,我想按需加载其他函数,在我选择之前不让它们可用

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

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

这将使您能够创建一个模块,该模块将具有所有自定义功能!然后在
loadMyFunctions
cmdlet的内部添加
Import Module NewModuleName

这将使您能够使用cmdlet

希望这有帮助, Lachlan

了解一下如何创建PowerShell模块和清单

这将使您能够创建一个模块,该模块将具有所有自定义功能!然后在
loadMyFunctions
cmdlet的内部添加
Import Module NewModuleName

这将使您能够使用cmdlet

希望这有帮助,
Lachlan最好的方法是使用模块。但是如果你想用不同的方式,你可以尝试你的方法

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

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

现在我从另一个脚本的另一个函数调用同一个函数,只使用点源代码,不使用as模块,结果正确

Funct1.ps1

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


希望对你有帮助

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

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

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

现在我从另一个脚本的另一个函数调用同一个函数,只使用点源代码,不使用as模块,结果正确

Funct1.ps1

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


希望对你有帮助

这很有趣-我简单地考虑了一下模块,然后忘记了它-我会尝试找出如何做到这一点。很抱歉,无意中删除了该评论。模块是一个很好的方式去!我过去使用过这些,而不是使用函数。我从来没有对这些有过异议。使用配置文件调用包含其他函数的模块。我已经删除了前面的答案,因为我同意我错误地解释了这个问题。这很有趣-我简单地考虑了一下模块,然后忘记了它-我将尝试找出如何做到这一点。很抱歉,意外删除了该评论。模块是一个很好的方式去!我过去使用过这些,而不是使用函数。我从来没有对这些有过异议。使用配置文件调用包含其他函数的模块。我已经删除了之前的答案,因为我同意我错误地解释了这个问题。这非常有效,正是我想要的-谢谢你的好主意。非常感谢善良,非常乐意帮助这非常有效,也正是我想要的-谢谢你的好主意。非常感谢善良,非常乐意帮助这也是一个合理的方法。我知道函数可以为脚本提供源代码并使用它的函数,但我真正想要的是一种动态选择“包含”脚本的方法。这也是一种合理的方法。我知道函数可以为脚本提供源代码并使用它的函数,但我真正想要的是一种动态选择“包含”脚本的方法。