启动时加载不同的PowerShell配置文件?[Powershell 7]



是否有方法指定在初始化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"

之后,您可以通过键入condapbashp来加载配置文件。

通过快捷方式调用配置文件

您还可以创建不同的快捷方式来打开具有特定配置文件的PowerShell:

  1. %APPDATA%MicrosoftWindowsStart MenuProgramsWindows PowerShellWindows PowerShell.lnk复制快捷方式
  2. 例如,将其重命名为condap
  3. 将其目标从%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会话。

最新更新