Главная > Powershell > Изменение цветов системных сообщений в Powershell

Изменение цветов системных сообщений в Powershell

Небольшая заметка о том, как можно изменить стандартные цвета системных сообщений в Powershell.

Системные сообщения – это сообщения от самого Powershell (например, сообщения об ошибках). Также к ним можно отнести сообщения, выводимые некоторыми командлетами.

Одним из общепринятых советов по написанию скриптов является отказ от вывода сообщений вроде

'Всё прошло успешно'

или

Write-Host -ForegroundColor Green 'OK'

Для вывода любых сообщений рекомендуется использовать специально разработанные для этой цели командлеты. В зависимости от типа сообщения это может быть Write-Debug, Write-Error, Write-Warning и т.д. Эти сообщения выделяются цветом, однако, если подряд идут сообщения разных типов (от различных командлетов), то все сообщения сливаются, и не так привлекают внимание:

Write-Warning 'Что-то пошло не так!'
Write-Verbose 'OK' -Verbose
Write-Debug 'Отлаживаем работу скрипта'Debug

Colors-1 

Поэтому, при желании/необходимости эти цвета можно изменить.

Цвета в сообщениях, которые можно изменить, можно узнать выполнив команду

$Host.PrivateData | Get-Member -MemberType Property

 

Colors-2

Изменить цвет очень просто, для этого достаточно присвоить соответствующему свойству желаемый цвет:

$Host.PrivateData.WarningForegroundColor = 'Red'
$Host.PrivateData.VerboseForegroundColor = 'Green'
$Host.PrivateData.DebugForegroundColor = 'Gray'

Так, различные типы сообщений станут намного заметнее:

Colors-3

Изменённые цвета сохранятся до завершения текущего сеанса Powershell, поэтому желательно восстановить оригинальный цвет (предварительно сохранив его).

Кстати, посмотреть все доступные цвета можно выполнив команду

[System.Enum]::GetNames([System.ConsoleColor])
Рубрики:Powershell Метки:
  1. Комментариев нет.
  1. No trackbacks yet.

Оставьте комментарий