我有一台共享计算机,我想为其创建一个自定义PowerShell配置文件,可以使用一个简单的命令加载该配置文件,否则它将永远不会成为源文件。

我尝试将这样的功能添加到主$ profile中:

function custom() {.  C:\Users\[username]\Documents\WindowsPowerShell\custom_profile.ps1}

我的想法是,我可以只键入命令custom,它将加载我的自定义配置文件。

这是行不通的,因为它是在函数作用域内进行采购的,当我离开该作用域时,所有的函数和别名都会丢失。

我可以只执行整个. C:\Users\[username]\Documents\WindowsPowerShell\custom_profile.ps1命令,但是我正在寻找一种方法来使用单个命令。

如果我正在bash中,我只会使用alias custom=". C:\Users\[username]\Documents\WindowsPowerShell\custom_profile.ps1"之类的东西,但是Powershell的alias不能那样工作。

如何在PowerShell中执行此操作?

最佳答案

或者,将文件更改为psm1(powershell模块),然后:

Function custom {
   if(-not Get-Module custom_profile){
       Import-Module 'C:\Users\[username]\Documents\WindowsPowerShell\custom_profile.psm1'
   } else {
       Remove-Module custom_profile
       Import-Module 'C:\Users\[username]\Documents\WindowsPowerShell\custom_profile.psm1'
   }
}

然后运行
custom

会做你想要的。

如评论中所述,您可能需要
Export-ModuleMember -Variable * -Function * -Alias *

如果您的模块应该导出变量,别名以及函数。

关于powershell - 如何使用单个命令加载自定义Powershell配置文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36405552/

10-17 03:03