我怎样才能启动powershell.exe从PowerShell快捷方式“默认”的色彩?(How c

2019-07-04 11:02发布

我连接到当你从预装的一个快捷方式启动它的PowerShell窗口的漂亮的蓝色。 但是,如果您手动启动powershell.exe,你没有得到这些颜色,你会得到黑/白:(

这是因为默认设置的快捷方式(.lnk)文件中设置:

我有在资源管理器上下文菜单“PowerShell提示符这里”项,我想它使用相同的漂亮的颜色作为一般的快捷方式启动PowerShell的; 黑色吸,它的混乱有不同颜色的窗口(尤其是当我有一些老派的命令窗口频繁,同时也是黑开!)。

我发现两个问题,试图建立这个至今:

  1. 在PowerShell中设置的颜色似乎只允许特定的值(ConsoleColor枚举),其中没有匹配的默认快捷方式之一。
  2. 在PS配置文件中设置颜色会导致只写了事后兑现了新的背景颜色的文本。 添加“CLS”使原来的颜色讨厌的闪光灯,因为它开始。

有没有什么办法来从命令行启动PowerShell的(即我可以在注册表中的资源管理器右键菜单项嵌入)将使用相同的设置快捷方式?

Answer 1:

Here's a really easy way:

1. Add .LNK to your PATHEXT variable.

Start -> run "sysdm.cpl" -> advanced -> Environment Variables

Scroll Down through system variables, double click PATHEXT

Add .LNK; as depicted below:

2 Copy the default "Windows Powershell.lnk"

Copy-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" "C:\Windows\System32\powershell.lnk"

3. Typing "powershell" from a run prompt will now bring up the default console color/configuration.

You can further customize the .lnk in C:\Windows\System32 to your liking.

Please note that this will only work because you have added the .lnk to the list of acceptable extensions AND c:\windows\system32 is the first item in the search path (PATH system variable) by default.

This will not customize the console if it is launched via cmd.exe.

4. To make this work from the "Run Powershell Here" context menu, save this as a .reg file and import it:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\PowerShellHere\command]
@="C:\\WINDOWS\\system32\\cmd.exe /c start powershell -NoExit \"cd '%1';(get-host).ui.rawui.windowtitle = 'Oompa Loompa'\""

[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere\command]
@="C:\\WINDOWS\\system32\\cmd.exe /c start powershell -NoExit \"cd '%1';(get-host).ui.rawui.windowtitle = 'Oompa Loompa'\""

I am using cmd.exe to call "start" which will launch the powershell.lnk and pass the current working directory as an argument. Doesn't seem to work from the address bar yet. I should have gone home 45mins ago, but your problem was fun to solve! :)

Bonus Points: You can thread the commands sent to Powershell. So, if you are looking to modify the Powershell console's title attribute:

\"cd '%1';(get-host).ui.rawui.windowtitle = 'Oompa Loompa'"

Simply add a semicolon between commands.

Happy shelling



Answer 2:

编辑配置文件脚本(由$配置文件指向的)和自己设置所需的颜色:

# set regular console colors
[console]::backgroundcolor = "darkmagenta"
[console]::foregroundcolor = "darkyellow"

# set special colors

$p = $host.privatedata

$p.ErrorForegroundColor    = "Red"
$p.ErrorBackgroundColor    = "Black"
$p.WarningForegroundColor  = "Yellow"
$p.WarningBackgroundColor  = "Black"
$p.DebugForegroundColor    = "Yellow"
$p.DebugBackgroundColor    = "Black"
$p.VerboseForegroundColor  = "Yellow"
$p.VerboseBackgroundColor  = "Black"
$p.ProgressForegroundColor = "Yellow"
$p.ProgressBackgroundColor = "DarkCyan"

# clear screen
clear-host


Answer 3:

我发现使用它非常有用concfg工具和舀安装的颜色和字体PowerShell的:

  1. 安装瓢:

     iex (new-object net.webclient).downloadstring('https://get.scoop.sh') 
  2. 安装concfg:

     scoop install concfg 
  3. 安装Solarized主题 :

     concfg import solarized 

就是这样,感谢作者!



Answer 4:

点击系统菜单(PowerShell的图标在窗口的左上角),然后单击默认值。 你可以在这里更改默认的颜色,它会通过PowerShell提示符下面的命令得到尊重。

来源: https://superuser.com/a/523017/109736



Answer 5:

这样做的正确方法是用注册表

cd hkcu:/console
$0 = '%systemroot%_system32_windowspowershell_v1.0_powershell.exe'
ni $0 -f
sp $0 ColorTable00 0x00562401
sp $0 ColorTable07 0x00f0edee


Answer 6:

  1. 运行regedit命令打开注册表编辑器
  2. 追查HKEY_CURRENT_USER > CONSOLE通过以防万一导出和备份整个文件夹
  3. 删除文件夹

重新启动PowerShell中,颜色方案必须重置为默认值。

注:如果您有关于PowerShell的任何其它设置(或命令提示符,GIT中的Bash等),你可能要保持,请进一步探索控制台文件夹中删除相应的键



Answer 7:

这是我的解决方案(设置颜色会启动作为系统中的脚本)。 可能比你更需要(见我自己的答案):

https://superuser.com/questions/891519/using-psexec-to-launch-powershell-session-as-system-with-specific-window-attribu



Answer 8:

基于@雷克斯-哈丁出色的答案 ,我在这里改进了注册表编辑器的内容添加一个图标,并使用PowerShell的本地参数在正确的道路开始。

在目录背景时,右键单击上下文菜单中启用,当直接在目录上右击图标。

当然,我们也跑蓝色背景控制台酷似默认的。

1.添加“ .LNK ”扩展%PATHEXT%环境变量

这使系统执行与文件.lnk扩展名(扩展名隐藏快捷方式)

2.将默认的PowerShell快捷方式链接到SYSTEM32为powershell文件

这使得powershell命令来启动我们的快捷system32文件夹(这是在%PATH%

利用资源管理器(拷贝+重命名)或命令行以下:

Copy-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" "C:\Windows\System32\powershell.lnk"

3.添加以下代码到一个powershell_here.reg文件并执行它。

powershell_here.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\directory\background\shell\PowerShell]
@="PowerShell Here"
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"

[HKEY_CLASSES_ROOT\directory\background\shell\PowerShell\command]
@="cmd.exe /c start powershell -NoExit -NoProfile -Command Set-Location -LiteralPath '%V'"

[HKEY_CLASSES_ROOT\directory\shell\PowerShell]
@="PowerShell here"
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"

[HKEY_CLASSES_ROOT\directory\shell\PowerShell\command]
@="cmd.exe /c start powershell -NoExit -NoProfile -Command Set-Location -LiteralPath '%L'"



文章来源: How can I launch powershell.exe with the “default” colours from the PowerShell shortcut?