2014-10-27 38 views
3

我有一个函数来将输出日志写入文件和控制台。我想色达一点的写主机部分;-)PowerShell获取写主机的默认前景色

switch($logLevel) 
{ 
    "FATAL" { $ConsoleWriteColor = "blue"; break } 
    "ERROR" { $ConsoleWriteColor = "red"; break } 
    "WARN" { $ConsoleWriteColor = "yellow"; break } 
    default { $ConsoleWriteColor = "white"; break } 

} 
Write-Host -ForegroundColor $ConsoleWriteColor "Hello world" 

所以我的问题是默认情况下:我怎样才能得到当前的前景色?我猜这不总是白色的?!

回答

5

当前的前景和背景可以像这样获得。

PS>(get-host).ui.rawui.ForegroundColor 
Gray 
PS>(get-host).ui.rawui.BackgroundColor 
Black 
+0

这对我总是返回-1 ?! – silent 2014-10-27 07:50:43

+0

我在PS 4.其他命令也只显示-1 – silent 2014-10-27 08:03:55

+0

@silent您在PowerShell ISE中是否正确?该命令将在本地shell中工作。试试吧 – Matt 2014-10-27 11:29:35