如何使用PowerShell快捷方式中的“默认”颜色启动powershell.exe?

时间:2012-12-03 19:25:00

标签: shell powershell powershell-v3.0

当您从其中一个预安装的快捷方式启动PowerShell窗口时,我附加了它的漂亮蓝色。但是,如果你手动启动powershell.exe,你不会得到这些颜色,你会得到黑/白:(

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

PowerShell shortcut colour settings

我在Explorer上下文菜单中有一个“PowerShell Prompt Here”条目,我希望它使用与通常的快捷方式相同的漂亮颜色来启动PowerShell;黑色很糟糕,而且有不同颜色的窗户会让人感到困惑(尤其是当我有一些经常打开的老式指令窗户也是黑色的时候!)。

到目前为止,我发现了两个问题:

  1. 在PowerShell中设置颜色似乎只允许某些值(ConsoleColor枚举),它们都不匹配默认快捷方式上的值。
  2. 在PS配置文件中设置颜色会导致之后写入的文本仅支持新的背景颜色。添加“cls”会在启动时导致原始颜色的令人讨厌的闪烁。
  3. 有没有办法从命令行启动PowerShell(即我可以将其作为资源管理器上下文菜单项嵌入到注册表中),它将使用与快捷方式相同的设置?

9 个答案:

答案 0 :(得分:31)

编辑您的个人资料脚本(由$ profile指向)并自行设置所需的颜色:

# 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

答案 1 :(得分:20)

这是一个非常简单的方法:

1。将.LNK添加到PATHEXT变量。

开始 - >运行“sysdm.cpl” - >高级 - >环境变量

向下滚动系统变量,双击PATHEXT

添加.LNK;如下图所示:

Path Extension

2复制默认的“Windows Powershell.lnk”

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

3。从运行提示符键入“powershell”现在将显示默认控制台颜色/配置。

您可以根据自己的喜好在C:\ Windows \ System32中进一步自定义.lnk。

请注意,这只会有效,因为您已将.lnk添加到可接受的扩展名列表中,并且c:\ windows \ system32默认情况下是搜索路径中的第一项(PATH系统变量)。

如果通过cmd.exe启动,则无法自定义控制台。

4。要从“Run Powershell Here”上下文菜单中进行此操作,请将其另存为.reg文件并导入它:

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'\""

我使用cmd.exe调用“start”,它将启动powershell.lnk并将当前工作目录作为参数传递。似乎没有从地址栏工作。我应该在45分钟前回家,但你的问题很有趣! :)

奖励积分:您可以将发送给Powershell的命令进行线程化。因此,如果您要修改Powershell控制台的title属性:

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

只需在命令之间添加分号即可。

快乐炮击

答案 2 :(得分:11)

我发现使用concfg toolscoop为Powershell安装颜色和字体非常有用:

  1. 安装独家新闻:

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

    scoop install concfg
    
  3. 安装Solarized theme

    concfg import solarized
    
  4. 这就是它,感谢作者!

答案 3 :(得分:6)

单击系统菜单(窗口左上角的PowerShell图标),然后单击“默认值”。您可以在此更改默认颜色,PowerShell Prompt Here命令将遵循它。

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

答案 4 :(得分:5)

执行此操作的正确方法是使用注册表

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

答案 5 :(得分:3)

  1. 运行regedit命令以打开注册表编辑器
  2. 通过导出以防万一
  3. 来追踪HKEY_CURRENT_USER > CONSOLE和备份整个文件夹
  4. 删除文件夹
  5. 重新启动Powershell,颜色方案必须重置为默认值。

    注意:如果您有任何其他与PowerShell(或命令提示符,Git Bash等)相关的设置,请进一步探索控制台文件夹以删除相应的键

答案 6 :(得分:1)

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

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

答案 7 :(得分:0)

基于出色的@ rex-hardin answer,我改进了此处的regedit内容,以添加图标,并使用PowerShell本机参数从正确的路径开始。

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

当然,我们也运行与默认背景完全相同的蓝色背景控制台。

1。向“ .LNK”环境变量中添加“ %PATHEXT%”扩展名

这允许系统执行扩展名为.lnk的文件(快捷方式的隐藏扩展名)

2。将默认的PowerShell快捷方式链接作为powershell文件复制到system32

这允许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'"

enter image description here

答案 8 :(得分:0)

在Windows 7 Pro 64位操作系统上,通过“探索”或“ Total Commander”或“ Double Commander”在当前文件夹中启动具有默认蓝色和白色的Powershell:

  1. 星空菜单->搜索PowerShell链接->右键单击它->属性->快捷方式选项卡(默认打开的选项卡)->修改开始于:->%CD%

enter image description here

  1. 在系统PATH上的某个文件夹中的某个位置创建一个名为 ps.bat 的批处理文件(如果没有这样的文件夹,只需创建一个,例如 C :\ run \ cli 并将其添加到PATH系统环境变量中)。该批处理文件必须包含以下命令:

    开始“”“ C:\ ProgramData \ Microsoft \ Windows \开始菜单\程序\附件\ Windows PowerShell \ Windows PowerShell.lnk”

就是这样。现在,只需在显示当前文件夹的资源管理器的路径栏中或在Total Commander或Double Commander等的命令行框中键入ps ...

在Windows 10上,无需从“开始”菜单修改PowerShell快捷方式,并且上面的ps.bat文件可能仅包含以下命令:

start %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe