Как в PowerShell поменять цвета текста и фона для сообщений об ошибках и предупреждениях

Если при работе в командной строке вы случайно допустите опечатку, скажем, вместо «r» в конце команды dir напечатаете «e», интерпретатор сообщит об ошибке, но ничем иным кроме как текстовым содержимым это сообщение не будет отличаться. Не так бывает в консоли PowerShell. Ошибки в ней подсвечиваются красным цветом на чёрном фоне и всё это на тёмно-синем окружении основного фона консоли.


Не очень приятное сочетание цветов, не правда ли?

PowerShell

Если вы тоже так считаете, почему бы их не изменить, сделать так, чтобы они гармонировали друг с другом? Начнём с того, что в PowerShell, как и в стандартной командной строке, цвет текста и основного фона можно менять. Кликните правой кнопкой мыши по заголовку окна консоли и выберите в меню «Свойства». В открывшемся окошке переключитесь на вкладку «Цвета» и подберите сочетание цветов для фона и текста, которое с вашей точки зрения является наиболее гармоничным.

Цвета

Только вот текст ошибок по-прежнему будет выводиться красным цветом на том же чёрном фоне. Как изменить его? Очень просто. Используемые в PowerShell цвета хранятся в объекте PrivateData. Чтобы их просмотреть, содержимое этого объекта необходимо записать в переменную, а затем вывести её на экран. Вот так:

$col=(Get-Host).PrivateData
$col

PrivateData

За цвета сообщений об ошибках отвечают параметры ErrorForegroundColor и ErrorBackgroundColor. Как видим, по умолчанию первый имеет значение Red (красный), а второй значение Black (чёрный). Давайте заменим их.

$col.ErrorBackgroundColor = «Yellow»
$col.ErrorForegroundColor = «Blue»

Готово, теперь можете попробовать намерено выполнить какой-нибудь командлет с ошибкой.

Командлет с ошибкой

Вы увидите, что цвет текста ошибки и окружающий его фон изменились. При желании можете поэкспериментировать и с другими свойствами. Например, WarningForegroundColor и WarningBackgroundColor отвечают за цвета предупреждений, а DebugForegroundColor и DebugBackgroundColor за сведения об отладке.

Да, чтобы не забыть, все доступные цвета выводятся командой [System.Enum]::GetNames([System.ConsoleColor]).

System.Enum

Способ, как видите, рабочий, но при этом следует помнить, что при завершении сессии созданная вами переменная будет удалена, а вместе с нею к значениям по умолчанию будут приведены свойства цветов. Чтобы сохранить настройки, вам нужно будет добавить их в свой пользовательский профиль. А что такое профиль PowerShell и для чего он нужен, мы поговорим в следующий раз.

Теги: , , ,

Предыдущая/следующая

Вам может быть интересно:

Поделиться в соц сетях:

Twitter Facebook Vk Googlepluse Linkedin

Подпишитесь на обновления этого блога по RSSRSS, RSSMAILEmail или TwitterTwitter!

Случайная подборка из рубрики:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Обсуждаемые темы:

Авторизация
*
*
Войти с помощью: 
Регистрация
*
*
*
Войти с помощью: 
Генерация пароля