是否有方法指定在初始化PowerShell时加载哪个PowerShell配置文件?
例如,我希望在使用Python时能够加载Python-Conda概要文件,或者在使用跨平台脚本时能够加载带有bash命令别名的概要文件。
注意:我在同一台机器上,在同一个用户上。因此,机器/用户特定的配置文件在我的情况下不起作用。
由于PowerShell配置文件只是在PowerShell终端启动时加载的PowerShell脚本,因此有多种加载方法。假设您有两个配置文件:
- conda_profile.ps1
- bash_profile.ps1
直接调用配置文件脚本
你可以在打开PowerShell窗口后执行它们,例如:
.conda_profile.ps1
通过别名调用配置文件脚本
如果名称或路径太长或太复杂,您可以为它们创建别名,例如:
# Put the following two lines into the file stored in $PROFILE. You probably have to create it.
Set-Alias -Name condap -Value "C:pathtoconda_profile.ps1"
Set-Alias -Name bashp -Value "C:pathtobash_profile.ps1"
之后,您可以通过键入condap
或bashp
来加载配置文件。
通过快捷方式调用配置文件
您还可以创建不同的快捷方式来打开具有特定配置文件的PowerShell:
- 从
%APPDATA%MicrosoftWindowsStart MenuProgramsWindows PowerShellWindows PowerShell.lnk
复制快捷方式 - 例如,将其重命名为
condap
- 将其目标从
%SystemRoot%system32WindowsPowerShellv1.0powershell.exe
编辑为%SystemRoot%system32WindowsPowerShellv1.0powershell.exe -ExecutionPolicy Bypass -NoExit -File "C:pathtoconda_profile.ps1"
分别对其他配置文件执行此操作。
启动时提示选择配置文件
您还可以编写一个配置文件,要求您在启动PowerShell时在不同的配置文件之间进行选择。确保您有当前主机和当前用户的配置文件:
if (!(Test-Path -Path $PROFILE)) {
New-Item -Type File -Path $PROFILE -Force
}
之后,向该文件添加一些行以请求输入,并根据该输入执行所需的配置文件脚本。它会起作用,但请记住,在大多数情况下,配置文件中的用户交互可能是一个糟糕的设计。
只是为了让命令行(和非窗口(用户更简洁:
pwsh -NoExit -File <your_profile_script>
将使用指定的配置文件启动powershell会话。