如何按需加载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
从另一个脚本中的另一个函数触发了函数。
希望对您有所帮助...!!!
在我每次启动 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
从另一个脚本中的另一个函数触发了函数。
希望对您有所帮助...!!!