使用 Powershell Core 6 作为默认 shell,快捷键为 Windows+X,我

使用 Powershell Core 6 作为默认 shell,快捷键为 Windows+X,我

我见过这个问题这不太一样。我安装了 Powershell Core 6。我通常使用快捷方式Windows+打开 Powershell X,然后I。现在我希望该快捷方式打开 Powershell Core 6,而不是旧的 Powershell 5。可以吗?

答案1

或者只需使用新的 Windows 终端并添加您选择的任何内容。

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 建议的另一种选择是使用康埃穆或者微软终端.
设置为默认终端:


Pwsh.exe要配置在 ConEmu 中启动的热键:

  1. 设置启动任务预定义任务(命令组)
  2. +图标或者使用 ConEmu 默认的 [ Shells::PowerShell Core]
    1. 姓名 (演出Group <#> Powershell::Pwsh
    2. 热键:选择你想要的
    3. 新控制台的默认任务:打开 ConEmu 时的默认 shell
    4. 任务栏跳转列表:将此任务添加到 ConEmu 任务栏跳转列表
    5. 默认 shell (Win+X):
      • Windows 10:Win将其设为+X菜单中默认选项
      • Windows 11:不影响Win+X菜单
        • 虽然Win+X菜单也可以在 Win <11 中手动修改,但它会导致 11 中出现损坏(如果有人知道不会导致损坏的方法,请发表评论,我会修改它)
    6. 任务参数:不需要,但可以定制
    7. 命令:
      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
        
  3. Save settings


要导入ConEmu.xml我使用的配置:

  1. GitHub 下载按钮:下载原始文件→ 在文本编辑器中打开
  2. 查找/<username>替换%UserProfile% 文件夹名称→ 保存更改
  3. 通过 ConEmu 设置导入:WinKey++ AltPImport...Save settings

答案4

这是我目前正在使用的解决方法。

如果您使用 PowerShell 的,您可以在脚本开头$PROFILE插入一行。Windows 启动 PowerShell 的任何快捷方式都可以有效地挂载到pwsh.exePowerShell 6间接作为子进程PowerShell 5

相关内容