我见过这个问题这不太一样。我安装了 Powershell Core 6。我通常使用快捷方式Windows+打开 Powershell X,然后I。现在我希望该快捷方式打开 Powershell Core 6,而不是旧的 Powershell 5。可以吗?
答案1
或者只需使用新的 Windows 终端并添加您选择的任何内容。
Windows 终端是一款全新、现代、快速、高效、强大且高效的终端应用程序,适用于命令行工具和 shell(如命令提示符、PowerShell 和 WSL)的用户。其主要功能包括多个选项卡、Unicode 和 UTF-8 字符支持、GPU 加速文本渲染引擎以及自定义主题、样式和配置。
这是一个开源项目,我们欢迎社区参与。如需参与,请访问https://github.com/microsoft/terminal
根据迄今为止的评论进行更新。
您无法在本机上完成您想要的操作。您必须破解注册表才能更改此设置。
但是,为什么要经过这么大的努力呢?您只需将 pwsh 快捷方式固定到任务栏上的第一个位置,然后只需在任务栏上按 Win 键 + 1(或将其放到位置 9)即可。
例如,在我的任务栏上,位置 1、2、3、4、5、6 有 Windows 终端、pwsh、powershell、powershell_ISE、VSCode、PowerShellStudio。
因此,按下 Win+# 即可启动应用程序。无需注册,只需 2 次击键,而不是 3 次。如果您安装了 Windows Terminal 和 pswh,甚至可以放弃 pwsh,因为它作为 Windows Terminal 中的一个选项包含在内。
答案2
使用此工具可以编辑 Win+X 菜单: https://winaero.com/download-winx-menu-editor-allows-you-to-add-or-remove-winx-menu-items
这里有一些组。使用添加程序按钮将其添加到您喜欢的任何组中。然后,按重新启动资源管理器(注意:这将关闭所有文件资源管理器窗口!)
答案3
@vssher 建议的另一种选择是使用康埃穆或者微软终端.
设置为默认终端:
- 微软终端: Windows 设置→隐私与安全→对于开发人员→终端
- 康埃穆设置: + Alt+ P→一体化→默认期限:
- 强制 ConEmu 作为控制台应用程序的默认终端
主开关 - 在操作系统启动时注册
通过注册表登录时自动启动 - 攻击模式
不需要正在运行的 ConEmu 实例来挂接新进程,一个已经挂接的进程 [explorer.exe
] 就足够了 - 挂钩的可执行文件或窗口类名称列表:
explorer.exe
通过以下方式将 ConEmu 设置为默认终端钩子在Windows 外壳[explorer.exe
] 和/或任何其他程序,通过|
[管道] 分隔:
(由于钩子的存在,Windows 的“设置”应用程序与将 ConEmu 设置为默认操作系统终端无关)explorer.exe|devenv.exe|totalcmd.exe|TaskManagerWindow|codeblocks.exe|lazarus.exe|gdb.exe
- 强制 ConEmu 作为控制台应用程序的默认终端
Pwsh.exe
要配置在 ConEmu 中启动的热键:
- 设置→启动→任务:预定义任务(命令组)
- +图标或者使用 ConEmu 默认的 [
Shells::PowerShell Core
]- 姓名 (演出
Group <#>
):Powershell::Pwsh
- 热键:选择你想要的
- 新控制台的默认任务:打开 ConEmu 时的默认 shell
- 任务栏跳转列表:将此任务添加到 ConEmu 任务栏跳转列表
- 默认 shell (Win+X):
- Windows 10:Win将其设为+X菜单中默认选项
- Windows 11:不影响Win+X菜单
- 虽然Win+X菜单也可以在 Win <11 中手动修改,但它会导致 11 中出现损坏(如果有人知道不会导致损坏的方法,请发表评论,我会修改它)
- 任务参数:不需要,但可以定制
- 命令:
pwsh.exe -NoExit -Command "Import-Module C:\Users\<username>\WindowsPowerShell\profile.ps1" -new_console:t:"Pwsh"
- 要作为管理员终端启动,请
a:
在之前添加t:
:-new_console:a:t:"Pwsh"
-Import-Module
是可选的,但允许自定义提示profile.ps1
:# # =========================================================== ##::[[--- Powershell PS1 Profile ---]]::## # =========================================================== # Microsoft.PowerShell_profile.ps1 || Profile.ps1: # %UserProfile%\Documents\WindowsPowerShell # $env:UserProfile\Documents\WindowsPowerShell # ================================================================ # Variables #---------------------------------------------------------------- # ANSI: $ESC = [char]27 # Host.PrivateData: $PD = $($Host.PrivateData) # Colors: $Host.UI.RawUI.BackgroundColor = ($bckgrnd = 'Black') $Host.UI.RawUI.ForegroundColor = 'Gray' $PD.ErrorForegroundColor = 'Red' $PD.ErrorBackgroundColor = $bckgrnd $PD.WarningForegroundColor = 'Magenta' $PD.WarningBackgroundColor = $bckgrnd $PD.DebugForegroundColor = 'Yellow' $PD.DebugBackgroundColor = $bckgrnd $PD.VerboseForegroundColor = 'Green' $PD.VerboseBackgroundColor = $bckgrnd $PD.ProgressForegroundColor = 'Yellow' $PD.ProgressBackgroundColor = $bckgrnd #================================================================ # Functions #---------------------------------------------------------------- # Prompt: Function set-prompt { Param ( [Parameter(Position=0)] [ValidateSet("Default","Test")] $Action ) switch ($Action) { "Default" { Function global:prompt { if (test-path variable:/PSDebugContext) { '[DBG]: ' } write-host " " write-host ("$ESC[48;2;40;40;40m$ESC[38;2;170;210;0m$(Get-Location) $ESC[0m $ESC[0m") if ( $host.UI.RawUI.WindowTitle -match "Administrator" ) { $Host.UI.RawUI.ForegroundColor = 'Red' $(if ($nestedpromptlevel -ge 1) { write-host ('PS $$ ') -ForegroundColor Red -NoNewLine } else { write-host ('PS $ ') -ForegroundColor Red -NoNewLine }) } else { $(if ($nestedpromptlevel -ge 1) { write-host ('PS $$ ') -ForegroundColor Blue -NoNewLine } else { write-host ('PS $ ') -ForegroundColor Blue -NoNewLine }) } return " " } } } } set-prompt Default # Relaunch as Admin: function Relaunch-Admin { Start-Process -Verb RunAs wt } Set-Alias psa Relaunch-Admin
- 要作为管理员终端启动,请
- 姓名 (演出
- Save settings
要导入ConEmu.xml
我使用的配置:
答案4
这是我目前正在使用的解决方法。
如果您使用 PowerShell 的,您可以在脚本开头$PROFILE
插入一行。Windows 启动 PowerShell 的任何快捷方式都可以有效地挂载到pwsh.exe
PowerShell 6间接作为子进程PowerShell 5。