2014-10-27 30 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