为什么使用“运行”和固定图标执行的 Powershell 有不同的设置?

为什么使用“运行”和固定图标执行的 Powershell 有不同的设置?

在我的 Windows 7 上,如果我通过“Win+R”运行 powershell,“powershell”将以黑色背景上的白色文本开始,并且设置会受到影响[HKEY_CURRENT_USER\Colors]。例如,我可以轻松地将默认的“红色”颜色更改为不太亮:

在此处输入图片描述

但是,如果我将此 powershell 固定到 Windows 7 超级栏并通过单击超级栏图标启动它,它将显示一些我无法更改的疯狂的蓝白色 O_O:

在此处输入图片描述

为什么会有这样的差异,是否有任何方法可以配置固定 powershell 的颜色,就像我可以配置通过“运行”命令启动的 powershell 一样。

答案1

总结

  1. 运行 powershell.exe
  2. ALT-- SPACE>Properties
  3. 根据需要更改设置。
  4. OK

powershell.exe 是一个控制台程序。当控制台程序运行时,Windows 会通过查找一系列位置来配置控制台。

首先它着眼于捷径(.LNK 文件)您启动的程序。这就是您通常在开始菜单、桌面和任务栏中看到的内容。如果您右键单击快捷方式并选择“属性”,您将在那里看到一堆这样的选项。

对于快捷方式中未指定的任何选项(或者如果您直接启动 .EXE,而没有使用快捷方式),Windows 将在注册表中查找。

我找不到所涉及的注册表项的完整列表,但以下是我所知道的:

HKEY_CURRENT_USER\Console
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

但等一下,还有更多!

当您在控制台窗口上打开系统菜单时,您会看到“属性”和“默认值”。

默认值修改上述注册表项之一。

这些属性适用于当前打开的控制台窗口和启动它的快捷方式。如果您没有使用快捷方式,因为您直接打开了 .EXE,它会转到一个特殊的注册表项,例如:

HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe

但这还不是全部!

控制台程序可以修改自己的颜色。例如,在 CMD 中,您可以执行以下操作:

C:\>color f0

在 PowerShell 中:

PS> $Host.UI.RawUI.BackgroundColor = 7

这些设置不会以任何方式保留下来。

相关内容