Изменение цветов системных сообщений в Powershell
Небольшая заметка о том, как можно изменить стандартные цвета системных сообщений в Powershell.
Системные сообщения – это сообщения от самого Powershell (например, сообщения об ошибках). Также к ним можно отнести сообщения, выводимые некоторыми командлетами.
Одним из общепринятых советов по написанию скриптов является отказ от вывода сообщений вроде
'Всё прошло успешно'
или
Write-Host -ForegroundColor Green 'OK'
Для вывода любых сообщений рекомендуется использовать специально разработанные для этой цели командлеты. В зависимости от типа сообщения это может быть Write-Debug, Write-Error, Write-Warning и т.д. Эти сообщения выделяются цветом, однако, если подряд идут сообщения разных типов (от различных командлетов), то все сообщения сливаются, и не так привлекают внимание:
Write-Warning 'Что-то пошло не так!' Write-Verbose 'OK' -Verbose Write-Debug 'Отлаживаем работу скрипта' –Debug
Поэтому, при желании/необходимости эти цвета можно изменить.
Цвета в сообщениях, которые можно изменить, можно узнать выполнив команду
$Host.PrivateData | Get-Member -MemberType Property
Изменить цвет очень просто, для этого достаточно присвоить соответствующему свойству желаемый цвет:
$Host.PrivateData.WarningForegroundColor = 'Red' $Host.PrivateData.VerboseForegroundColor = 'Green' $Host.PrivateData.DebugForegroundColor = 'Gray'
Так, различные типы сообщений станут намного заметнее:
Изменённые цвета сохранятся до завершения текущего сеанса Powershell, поэтому желательно восстановить оригинальный цвет (предварительно сохранив его).
Кстати, посмотреть все доступные цвета можно выполнив команду
[System.Enum]::GetNames([System.ConsoleColor])
Недавние комментарии