如何删除 Windows 终端中的 powershell 广告和更新检查?

Ang*_*ker 16 windows powershell powershell-core windows-terminal

当我启动 Windows 终端时,我得到以下信息:

在此输入图像描述

如何摆脱版权和版本通知、帮助 URL 和更新检查?我只想进入命令行。

我的 powershell 配置文件在 settings.json (Windows 终端的配置文件)中如下所示:

{
    "guid": "{574e775e-4f2a-5b96-ac1e-a2962a402336}",
    "hidden": false,
    "name": "PowerShell",
    "source": "Windows.Terminal.PowershellCore",
    "fontFace": "Cascadia Code PL",
    "startingDirectory": "C:\\Users\\user1\\desktop\\"
}
Run Code Online (Sandbox Code Playgroud)

我见过 -nologo 等标志,但我没有命令行来传递它。

mkl*_*nt0 26

更新:

  • 下面的答案显示您可以直接编辑您的settings.json文件

  • 至少从 Windows Terminal 1.16 开始,您可以选择使用 GUI谢谢,Chris

    • 打开“设置”选项卡(例如通过Ctrl-,
    • 在左侧边栏的底部,单击+ Add a new profile,然后在 旁边Duplicate a profile选择现有的 PowerShell(核心)配置文件,然后按 按钮Duplicate
    • 单击Command line,然后通过附加 来修改现有命令行-nologo,如下所示。

在 Windows 终端的文件中创建自定义 配置文件settings.json,如下所示(在profiles.list数组属性内):

至少从 PowerShell 7.2.1 开始,-nologo还停用了更新通知:谢谢,Maximilian Hils

{
    // no strict need for a GUID; create a *new* one, if needed.
    "hidden": false,
    "name": "PowerShell - no logo, no update notification",
    "commandline": "pwsh.exe -nologo"
    // ... other properties omitted.
},
Run Code Online (Sandbox Code Playgroud)

在早期版本中,您可能需要环境变量POWERSHELL_UPDATECHECK来禁用更新通知:

{
    // no strict need for a GUID; create a *new* one, if needed.
    "hidden": false,
    "name": "PowerShell - no logo, no update notification",
    "commandline": "cmd /c set POWERSHELL_UPDATECHECK=Off & pwsh.exe -nologo"
    // ... other properties omitted.
},
Run Code Online (Sandbox Code Playgroud)
  • 如果需要,请复制问题中显示的动态配置文件中的startingDirectory和属性。(动态配置文件由 Windows 终端本身自动生成,具体取决于发现安装的 shell;它们有一个值以 开头的属性,如问题中显示的条目所示。fontFacesourceWindows.Terminal

  • 在这种情况下,并不严格需要guid属性(通常,名称和 GUID 可以互换使用来标识配置文件);如果您确实使用它,请创建一个新的GUID(例如使用New-Guid)。

    • 如果您想使用name与动态 PowerShell Core 配置文件相同的值,最好通过将其属性设置为 来隐藏后者。hiddentrue
  • 自定义配置文件使用commandline属性来定义生成具有此配置文件的选项卡时要执行的命令。上面的值假定 PowerShell 的可执行文件pwsh.exe位于您的路径中;如果不是,因此您需要指定完整路径,请确保使用 \字符。(例如\"C:\\Program Files\\PowerShell\\7\\pwsh.exe\") 或改用/(例如\"C:/Program Files/PowerShell/7/pwsh.exe\")

  • 7.2.1 之前的 PowerShell 版本可能需要:

    • cmd /c set POWERSHELL_UPDATECHECK=Off定义相关环境变量以关闭PowerShell的更新通知,然后启动PowerShell。

      • 这意味着您的 PowerShell 实例将有一个cmd.exe父进程,但这应该不是问题。
    • 您也可以通过注册表持久地cmd.exe定义此环境变量,在这种情况下不再需要。

  • 传递-nologoPowerShell 的 CLI会抑制“徽标”,即版权消息和帮助提示。

    • 至少从 PowerShell 7.2.1 开始,-nologo也会自动停用更新通知 - 可能它一直以这种方式工作。

  • 效果非常好。POWERSHELL_UPDATECHECK 现在是一个环境变量。所以“命令行”现在只是“pwsh.exe -nologo”。 (3认同)
  • 作为扩展,如果您想在 VScode 终端中隐藏徽标,可以在 `"terminal.integrated.profiles.windows": {"PowerShell": { 中指定 `"args": ["-nologo"]` ... 设置 json 的 }}` 部分。 (2认同)