Powershell Profiles配置文件在哪?
以下内容适用于:Windows powershell 2.0, Windows PowerShell 3.0
当打开一个PowerShell对话框,并在里面创建一些变量(variables)、函数(functions)时,这些变量、函数均只在当前会话中有效。
一旦关闭这个对话框重新打开PowerShell时,这些变量都不存在了。
如果想保留这些设置,就需要用到profile配置文件。
在PowerShell启动时,会自动导入配置文件里面的设置。类似于批处理文件autorun.bat,windows开机启动时的文件。
powershell profiles配置文件存放于如下几个地方,不同的配置文件,作用域不同。
1、%windir%system32WindowsPowerShellv1.0profile.ps1
它作用于所有用户、所有的Shell。
2、%windir%system32WindowsPowerShellv1.0 Microsoft.PowerShell_profile.ps1
作用于所有用户,但只作用于Microsoft.PowerShell这个shell。
难道还有不是PowerShell的PowerShell shell?
3、%UserProfile%My DocumentsWindowsPowerShellprofile.ps1
作用于当前用户的所有shell。
4、%UserProfile%My DocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1
作用于当前用户的Microsoft.PowerShell这个shell。
以上的Windows的PowerShell profiles不是自动创建的。
如果要用,就自己去创建。
只要按照上面给出的文件路径和文件名,编写自己的内容进去即可。
有一个变量:$profile,它保存了当前Profile的路径。
使用Test-Path $profile可以查看当前有没有这个文件。
如果没有,可以使用new-item -path $profile -itemtype file -force命令来创建它。
然后,再使用notepad $profile来快捷的打开它来编辑。
在其中输入function pro { notepad $profile },以后想要修改profile时,直接运行pro命令即可。
最后,想要PowerShell启动时能成功的载入配置文件,还需要在PowerShell的Execution Policy(执行策略)中设置允许它这样做。
否则,尝试载入配置文件将会失败,PowerShell界面上也会显示错误信息。
无法加载配置文件的错误提示:
解决此问题与解决执行ps1文件的方法一样,因为这个Profile其实也是一个ps1格式的文件。
因此,使用Set-ExecutionPolicy RemoteSigned就可以了。
参考链接:http://msdn.microsoft.com/en-us/library/bb613488%28VS.85%29.aspx