如果Windows PowerShell在运行程序后损坏,如何重置它们?

时间:2012-12-10 17:06:41

标签: node.js powershell colors

我开始将PowerShell用于使用node.js的Windows项目。从Powershell命令行运行许多程序(包括node,supervisor和npm)时,我的PowerShell背景和前景颜色开始从默认的Powershell颜色更改。如何在PowerShell中保持一致的外观,以便我可以轻松读取运行命令的结果?

4 个答案:

答案 0 :(得分:62)

作为一次性操作,只需运行:

> [Console]::ResetColor()

From the docs:(强调补充)

  

前景色和背景色恢复为当前流程开始时存在的颜色

答案 1 :(得分:16)

我在使用MSBuild时遇到此问题,尤其是当我按Ctrl + C构建时。这就是我放在profile.ps1文件中的内容:

$OrigBgColor = $host.ui.rawui.BackgroundColor
$OrigFgColor = $host.ui.rawui.ForegroundColor

# MSBUILD has a nasty habit of leaving the foreground color red
# if you Ctrl+C while it is outputting errors.
function Reset-Colors {
    $host.ui.rawui.BackgroundColor = $OrigBgColor
    $host.ui.rawui.ForegroundColor = $OrigFgColor
}

然后我只是在MSBuild弄乱它们时调用Reset-Colors。

答案 2 :(得分:13)

首先在PowerShell中创建一个配置文件,如果您还没有配置文件:

test-path $profile
new-item -path $profile -itemtype file -force
notepad $profile

其次,将此代码放在文件中:

function prompt {
  [Console]::ResetColor()
}

第三,检查PowerShell是否允许您运行脚本。

Get-ExecutionPolicy

如果这表示受限制,则运行以下AS管理员(请确保您了解安全隐患):

Set-ExecutionPolicy RemoteSigned

打开一个新的PowerShell提示符,您应该能够运行节点或其他命令,而不会出现任何颜色问题。

答案 3 :(得分:0)

我通过运行以下命令解决了颜色问题:

cmd
color 07
exit

这些命令的作用是在PowerShell中运行cmd,运行color 07修复颜色,然后从cmd退出以恢复到PowerShell。