Команда COLOR задает цвет символов и цвет фона в окне консоли .
Формат командной строки:
COLOR [цвет фона][цвет текста]
Цвет задается шестнадцатеричной цифрой, Старший бит определяет яркость, а последующие биты — цвет :
Бит 0 — яркость
Бит 1 — красный ( R )
Бит 2 — зеленый ( G )
Бит 3 — синий ( B )
По умолчанию, используются белые буквы на черном фоне — цвет фона = 0 , цвет символов =7. Значения битов задают комбинацию цветов, так например, для желтого цвета используется установка битов 1 и 2 ( Красный и Зеленый). Команда для установки яркого синего цвета ( 9 ) на желтом фоне ( 6 ) : color 69
То же, но на ярком желтом фоне:
color F0 — черные символы на ярком белом фоне, color 0F — наоборот, белые яркие символы на черном фоне. .
Каждая цифра может иметь следующие значения:
Если в команде COLOR задана только одна цифра, то она определяет цвет символов на черном фоне (значение цвета фона воспринимается как 0 ):
COLOR 1 — синие буквы на черном фоне, как в команде COLOR 01
Если аргумент не указан, команда восстанавливает исходный набор цветов, каким он был на момент запуска CMD.EXE. Этот набор определяется из значения ключа /T, если он был задан при запуске интерпретатора CMD.EXE, или из значения параметров реестра, определяющих пользовательские настройки для интерпретатора команд:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Command Processor DefaultColor — для всех пользователей.
HKEY_CURRENT_USER Software Microsoft Command Processor DefaultColor — для текущего пользователя. Значения параметров из раздела пользователя более приоритетны, по сравнению с параметрами раздела HKEY_LOCAL_MACHINE
Если параметр DefaultColor имеет значение по умолчанию ( REG_DWORD 0x00000000 ), то цветовой набор определяется значением параметра
HKEY_CURRENT_USER Console ScreenColors .
Команда COLOR возвращает значение кода ошибки ERRORLEVEL равный 1 при попытке вызова этой команды с совпадающими значениями цвета текста и цвета фона, например — COLOR 00 .
Продолжаем устранять пробелы в знаниях языка Си. Сегодня я расскажу о том, как изменить цвет фона и выводимого текста в консоли. Для изменения фона и текста используются разные методы, которые сейчас рассмотрим.
Итак, чтобы изменить фон, будем использовать функцию system, в которую будем передавать строку следующего вида: «color «, где и — шестнадцатеричные цифры — первая задает цвет фона, а вторая — цвет переднего плана (цвет шрифта).
- 0 — черный
- 1 — синий
- 2 — зеленый
- 3 — голубой
- 4 — красный
- 5 — лиловый
- 6 — желтый
- 7 — белый
- 8 — серый
- 9 — свело-синий
- A — светло-зеленый
- B — светло-голубой
- С — светло-красный
- E — светло-желтый
- F — ярко-белый
Пример
Думаю с цветом фон проблем не возникло, тогда идем дальше, будем менять цвет слов, символов, а также фон за ними. В этом случае наши действия похожи — нам придется вызывать всего одну функцию, правда перед этим нужно будет подключить заголовочный файл windows.h, а также получить дескриптор консоли. Для лучшего понимания рассмотрим все в следующем листинге.
Как видно из листинга, цвет текста и фона изменяется вызовом функции SetConsoleTextAttribute, которая принимает два параметра: дескриптор консоли и выражение вида (WORD)((Background В отличие от первого случая с функцией system, параметры Bacground и Text являются числовыми, поэтому необходимо цвета, которые имеют буквенное обозначение, заменять их эквивалентами. Например: A = 10, B = 11 и т.д.
Для удобства записи, а также чтобы не запоминать все числа, которые соответствуют цветам, можно создать перечисление, содержащие все цвета. После этого можно будет просто использовать имя цвета вместо соответствующего чисел.
Следует заметить, что если Вам необходимо изменить цвет всего фона, то делать это нужно в первую очередь, так как если вы сделаете иначе, то все, что вы выделили функцией SetConsoleTextAttribute будет иметь другой цвет, заданный в colors.
Листинг рабочей программы
Результаты программы
12 отзывов на “ Изменение цвета в консоли (Си, Си++) ”
Спасибо! Цвета — это хорошая вещь! Я тут такую мини-праверку пароля сделал (совсем примитивную, ибо я начинающий), и цвета там реально смотрятся! 2
можно просто на рабочем столе зайти в: свойства/цвет и там изменить цвет консоли и теста
Как на счет большего количества цветов консоли? Есть такая возможность?
Большое спасибо,всё понятно
Михаил добрый вечер!Скажите а если надо чтобы какой-то один символ выделить другим цветом от всех остальных как в таком случае поступить
и вообще возможно ли это?
Статья полезная! Скажите Михаил, а что нужно подключить, что б это было справедливо и для Ubuntu? Спасибо!
Здесь я подсказать ничего не смогу, так как не писал на си в Linux.
Ура Анарбек екеумизге комеги тиди супер!
Спасибо за статью, полезная вещь
Спасибо за статью, очень помогли
Рад, что помог) Спасибо за отзыв
Когда пытаюсь подключить заголовочный файл Windows.h компелятор пишет not fond
У меня есть программа командной строки, которая выводит журнал на экран.
Я хочу, чтобы строки ошибок отображались красным цветом. Есть ли некоторые специальные коды символов, которые я могу вывести, чтобы переключить цвет текста на красный, а затем переключить его обратно на белый?
Я использую ruby, но я думаю, что это было бы одинаково на любом другом языке.
ОТВЕТЫ
Ответ 1
Вам нужно получить доступ к [Win32 Console API] (http://msdn.microsoft.com/en-us/library/ms682073(VS.85%29.aspx). К сожалению, я не знаю, как вы это сделаете от Ruby. В Perl я бы использовал модуль Win32::Console. Консоль Windows не отвечает на escape-коды ANSI.
Согласно статье о раскраске вывода Ruby, о которой упоминалось в artur02, вам необходимо установить и загрузить драгоценный камень win32console.
Ответ 2
В окнах вы можете сделать это легко тремя способами:
Теперь вы можете расширить String небольшим методом под названием red
Также вы можете расширить String таким образом, чтобы получить больше цветов:
Или, если вы можете установить драгоценные камни:
И в вашей программе:
Дополнительную информацию и возможное использование см. в документах для term/ansicolor.
Ответ 3
Я думаю, что настройка цвета текста консоли очень специфична для языка. Вот пример из С# из MSDN:
Console.ForegroundColor — это свойство для установки цвета текста.
Ответ 4
Вы можете использовать escape-последовательность ANSI, но это не будет делать то, что вы хотите в современных версиях Windows. В Википедии есть очень информативная статья:
Таким образом, ответ на ваш первоначальный вопрос почти наверняка «нет». Однако вы можете изменить цвет переднего плана, не записывая escape-последовательность, например, вызывая функцию API Win32. Я не знаю, как это сделать в Ruby с головы, но кому-то еще удалось:
Я предполагаю, что вам нужно использовать 4 для темно-красного или 12 для ярко-красного и 7 для восстановления цвета по умолчанию.
Надеюсь, это поможет!
Ответ 5
в escape-кодах ANSI:
32-разрядный характерный режим (подсистема: консоль) Приложения Windows не записывают escape-последовательности ANSI в консоль
Они должны интерпретировать действия escape-кода и вместо этого использовать собственный API-интерфейс консоли
Ответ 6
Если цвета определены следующим образом:
Например, чтобы изменить фон на синий и передний план на серый, вы должны ввести:
Ответ 7
Я создал небольшой кросс-платформенный камень, который отлично справляется с работой в Windows или POSIX-системах под MRI и JRuby.
Он не имеет зависимостей и использует коды ANSI для POSIX-систем, а также FFI (JRuby) или Fiddler (MRI) для Windows.
Чтобы использовать его, просто:
ColorConsole предоставляет методы вывода строк текста разными цветами, используя функции Console.write и Console.puts.
Для получения более подробной информации посетите домашнюю страницу проекта https://github.com/agardiner/color-console.
Ответ 8
Насколько я знаю, с командной строкой это невозможно, это всего лишь один цвет.
Ответ 9
Вы можете изменить цвет с помощью простой программы на С#, http://powerof2games.com/node/31 описывает, как вы можете обернуть вывод консоли для достижения эффекта.
Ответ 10
Ответ 11
Работает много старого ANSI Цветные коды. Код для красного переднего плана — это что-то вроде Escape- [31m. Escape — это символ 27, так что » 033 [31m» или » x1B [31m», в зависимости от вашей схемы экранирования.
[39m — это код для возврата к цвету по умолчанию.
Также можно указать несколько кодов одновременно, чтобы одновременно задать цвет переднего и заднего фона.
Возможно, вам придется загрузить ANSI.sys, см. эту страницу.
Ответ 12
Стандартная спецификация C/С++ для вывода в командную строку не указывает никаких возможностей для изменения цвета окна консоли. Тем не менее, в Win32 есть много функций для выполнения такой задачи.
Самый простой способ изменить цвет консоли Win32 — через системную команду в iostream.h. Эта функция вызывает команду DOS. Чтобы изменить цвета, мы будем использовать его для вызова команды цвета. Например, system(«Color F1»); сделает белый цвет консоли белым.
Цвета, доступные для использования с командой, — это шестнадцать цветов DOS, каждая из которых представлена шестнадцатеричной цифрой. Первый — это фон, а второй — передний план.
Просто это небольшое прикосновение цвета делает консольные программы более привлекательными. Однако команда Color изменит цвет всей консоли. Чтобы управлять отдельными ячейками, нам нужно использовать функции из windows.h.
Сделайте это, чтобы использовать функцию SetConsoleAttribute
Ответ 13
В конечном счете вам нужно вызвать SetConsoleTextAttribute. Вы можете получить дескриптор буфера экрана консоли из GetStdHandle.
Ответ 14
Я использую бесплатную программу windows tail, называемую baretail (google it), на протяжении веков, которая позволяет вам использовать версию команды unix для windows. Он позволяет вам раскрашивать линии, зависящие от любых ключевых слов, которые вы определяете. Что приятно в этом решении, так это не привязано к определенному языку или настройке и т.д., Вы просто определяете свою цветовую схему и ее как осел-конг. В моих личных топ-10 бесплатных помощниках!
С наступающим, коллеги. Все знают, что для консоли в windows можно легко задать цвет текста и фона. Но мало кто знает, что остальные 14 цветов тоже можно задать, существенно упростив себе работу с консольными приложениями, поддерживающими цвета в windows — например, git или mercurial. Под катом я в лицах и картинках расскажу о своей борьбе с цветами и о получившейся в результате утилитке на python, которая позволяет раскрасить консоль одной командой, дабы больше не видеть этого бело-синего ужаса powershell.
ANSI Colors
Итак, я хочу поменять все цвета в консоли, а не только текста и фона. Для начала посмотрим, что это за цвета. В linux и osx все просто — есть стандарт «ANSI Colors», который гласит, что если вывести в консоль определенную последовательность символов, то следующий за ней текст будет покрашен во все цвета радуги:
К сожалению, авторы windows данный стандарт не поддержали, но нечто похожее имеется — 16 цветов, которыми можно раскрашивать текст и фон. Простенькая программа на python показывает, как это выглядит:
Цвета, мягко выражаясь, печальные. Особенно если сравнивать результаты с цветовой схемой по умолчанию в ubuntu:
Меняем цвета
Цветовые настройки консоли хранятся, что ожидаемо, в реестра. Нас интересует ключ HKEY_CURRENT_USERConsole, значения от «ColorTable00 (черный, он же цвет фона) до ColorTable15 (яркий белый). Значения: DWORD, 0x00BBGGRR. Меняем эти волшебные ключи и получаем то же самое, что и в Ubuntu. Единственная разница — цвета идут в другом порядке:
Цель достигнута? Похоже на то. Но тут есть…
Интрига
Радуемся новым цветам. Через некоторое время понимаем, что у нас Windows 7 или Windows 8 и мы хотим прикрепить консоль в taskbar, дабы вызывать ее через хоткей „win+номер“. Делаем „pin this program to taskbar“, запускаем, и видим ЭТО:
Откуда взялся этот синий фон, который при раскраске становится черным? Ведь если запустить консоль через „win+r“ — мы видим наши цвета, установленные на предыдущем шаге. Тут кроется самое интересное — когда мы прикрепляем консольное приложение на taskbar, Windows создает для него ярлык (файл с расширением .lnk) и устанавливает для этого ярлыка персональные настройки цветов. Что делать? Берем в руки python, немного COM, и модифицируем настройки ярлыка. Теперь совсем все работает.
Обещанные два клика
Чтобы не растерять квалификацию программиста, я оформил все вышеперечисленное в качестве небольшого модуля на python, который можно использовать в качестве утилиты командной строки. Если у вас уже установлен python, то для установки моего шедевра достаточно выполнить команду:
Если же python у вас не стоит, то рекомендую поставить сборку ActivePython — кроме python она содержит еще и ряд предустановленных расширений, полезных для работы под Windows. Как с помощью утилиты раскрасить консоль под хохлому? Если запустить утилиту без аргументов командной строки, то она попытается найти в директории пользователя файл .Xresources и применить цвета из него. Если же такого файла нет, то будут применены цвета из ubuntu, которые я демонстрировал в примерах выше. Файл .Xresources — это штатный для *nix способ хранения настроек терминала, в частности цветовых схем. Если погуглить, то можно найти красивые готовые схемы.
Работа с ярлыками чуть сложнее — чтобы модифицировать настройки ярлыка, необходимо вызвать утилиту с ключом командной строки ‘—update-link’ и полным путем к ярлыку. Ярлыки прикрепленных на taskbar программ в Windows хранятся в директории „%USERPROFILE%AppDataRoamingMicrosoftInternet ExplorerQuick LaunchUser PinnedTaskBar“. Пример модификации ярлыка powershell, прикрепленного к taskbar:
Вроде все. Еще раз с наступающим всех, надеюсь кому-нибудь вышеизложенное пригодится :).
Вы когда-нибудь замечали, насколько мягко выглядит окно командной строки? Даже по прошествии всего этого времени это все еще белый текст на черном фоне. Это похоже на возврат к ранним дням развития вычислительной техники.
Давайте будем честными, дизайн приложения тоже не совсем современный — но мы ничего не можем с этим поделать. Однако мы можем изменить цвета по умолчанию для приложения командной строки и оживить цветовую схему, которую мы видим при использовании наиболее полезных команд CMD.
Как изменить цвет командной строки
Чтобы изменить цвета по умолчанию для командной строки, просто следуйте простым пошаговым инструкциям ниже:
Открыть Начало меню.
Тип cmd и нажмите Войти.
Нажмите на Командная строка , чтобы открыть приложение.
Щелкните правой кнопкой мыши строку заголовка приложения.
Выбрать Свойства в контекстном меню.
Нажми на Цвета вкладка в верхней части окна.
Теперь у вас есть несколько вариантов для игры. В верхнем левом углу окна вы увидите четыре свойства, которые вы можете изменить. Они есть Текст на экране, Фон экрана, Всплывающий текст, и Всплывающий фон.
Что касается цвета, вы можете выбрать один из предварительно загруженных параметров или ввести свои собственные значения RBG в поле справа.
Наконец, в нижней части окна вы можете изменить прозрачность командной строки. Вы можете установить очень высокую непрозрачность, если выберете подходящие яркие цвета текста. Пока у вас открыто окно «Свойства», стоит изучить другие вкладки. Вы можете изменить такие настройки, как размер курсора, шрифт и размер текста.
Если вы хотите узнать больше о приложении, ознакомьтесь с нашим руководством по лучшим советам и приемам командной строки!
Командная строка существует уже давно, и, хотя это чертовски полезный инструмент, он всегда был простым и скучным с тем же черным фоном и белым текстом.
Тем не менее, так выглядит программа по умолчанию. На самом деле, вы можете настроить многие аспекты опыта, чтобы сделать её более персональной, используя разные шрифты, цвета и расположение окон. Кроме того, если вы используете Windows 10, вы даже можете сделать консоль полупрозрачной и использовать пользовательские цветовые схемы для быстрого изменения внешнего вида.
В этом руководстве по Windows 10 мы расскажем, как персонализировать работу с командной строкой, чтобы сделать её менее скучной.
Как настроить курсор в командной строке
Чтобы настроить размер мигающего курсора в командной строке, выполните следующие действия:
- Откройте командную строку.
- Щелкните правой кнопкой мыши строку заголовка и выберите параметр «Значения по умолчанию».
- Маленький (по умолчанию).
- Средний
- Большой
Хотя мы рекомендуем использовать параметр «По умолчанию», в контекстном меню, вызываемом правой кнопкой мыши, вы можете получить доступ к настройкам командной строки как минимум двумя различными способами, и каждый из них будет по-разному влиять на внешний вид консоли.
- Значения по умолчанию: изменения, которые вы настраиваете с помощью этого параметра, не влияют на текущий сеанс, но новые параметры будут применяться при запуске командной строки с использованием любого ярлыка.
- Свойства: изменения, сделанные с помощью этой опции, будут применяться к текущему и будущим сеансам. Однако эти настройки будут применяться только к ярлыку, свойства которого были настроены. (Этот параметр обычно бывает полезен, когда вы пытаетесь настроить соответствующие параметры для различных задач.)
Как настроить размер шрифта и семейство в командной строке
Используя параметры командной строки, вы можете указать размер шрифта и семейство шрифтов в соответствии со своими предпочтениями, выполнив следующие действия:
- Откройте командную строку.
- Щелкните правой кнопкой мыши строку заголовка и выберите параметр «Значения по умолчанию».
- Откройте вкладку Шрифт.
- В разделе «Размер» выберите размер шрифта, который вы хотите использовать. (Параметр по умолчанию – 16 пикселей, но можно увеличить до 72 пикселей.)
Если вам не нравится семейство шрифтов «Consolas», используемое по умолчанию, вы можете выбрать из ряда других семейств, которые подходят для использования с командной строкой в разделе «Шрифт» (чуть ниже можно оценить как будет отображаться шрифт в окне командной строки).
Когда вы сделаете выбор, внизу страницы вы увидите предварительный просмотр новой конфигурации.
Как настроить макет в командной строке
Чтобы использовать пользовательский макет в командной строке, выполните следующие действия.
- Откройте командную строку.
- Щелкните правой кнопкой мыши строку заголовка и выберите параметр «Значения по умолчанию».
- Откройте вкладку Расположение.
- В разделе «Размер буфера экрана» вы можете указать, сколько контента вы можете просматривать и прокручивать при работе с командной строкой.
Совет: если вы хотите отрегулировать параметр ширины, не забудьте снять отметку с Перенос текстового вывода при изменении размеров .
Размер буфера использует координатную сетку для символьных ячеек, это означает, что ширина – это количество символьных ячеек, которые могут поместиться в каждой строке, а высота – это количество строк. Чем больше ширина и высота, тем больше контента вы можете просмотреть, но эти настройки не влияют на размер консоли. (Обычно не нужно изменять эти настройки, если у вас нет причины.)
В разделе «Размер окна» вы можете увеличить или уменьшить размер окна консоли, изменив параметры ширины и высоты, основанные на символьных ячейках (а не на пикселях).
Если вы хотите, чтобы командная строка запускалась в определенной позиции, снимите флажок Автоматический выбор в разделе «Положение окна» и укажите новую начальную позицию (в пикселях), используя настройки «Левый край» и «Верхний край».
При внесении изменений в правой части страницы вы увидите предварительный просмотр новой конфигурации.
Как настроить цвет и прозрачность в командной строке
Если вы хотите сделать работу с командной строкой менее скучной, вы также можете изменить цвет текста и фона, а в Windows 10 вы можете сделать окно консоли полупрозрачным (как в Linux), выполнив следующие действия:
- Откройте командную строку.
- Щелкните правой кнопкой мыши строку заголовка и выберите параметр «Значения по умолчанию».
- Откройте вкладку Цвета.
- Чтобы изменить цвета, выберите элемент с левой стороны и либо выберите цвет из списка, либо используйте настройки RGB справа, чтобы указать конкретный цвет.
Совет. Если вы не знаете точное количество красного, зеленого и синего цветов, составляющих нужный вам цвет, выполните поиск в Google по запросу «Выбор цвета RGB» и используйте найденные инструменты, чтобы получить значения.
Чтобы сделать окно консоли полупрозрачным, в разделе «Прозрачность» перетащите ползунок влево или вправо, чтобы установить степень прозрачности (минимум 30 процентов).
Кроме того, вы можете изменить прозрачность для текущего сеанса, не открывая настройки, используя комбинацию Ctrl + Shift + Колесико мыши .
Windows 10 Fall Creators Update принесло с собой много положительных изменений, которые улучшили опыт работы с операционной системой. Microsoft уделила также внимание командной строке – очень старому и крайне важному компоненту Windows. И пускай там не появились какие-то новые фичи, значимо улучшающие работу Windows, Microsoft подвезла пользователям несколько возможностей для персонализации. Иными словами, впервые за 20 лет вы можете сменить внешний вид командной строки с помощью официальной утилиты от Microsoft.
Сделано это с целью улучшить читабельность текста на мониторах с высоким контрастом и просто предоставить пользователю возможность немного подстроить командную строку под себя и сделать ее немного современнее. Кроме того, отдельные цветовые схемы созданы для тех, кто страдает определенными расстройствами зрения. Если эта тема для вас актуальна, рекомендуем вам ознакомиться с работой цветовых фильтров и включить цветовые фильтры в Windows 10.
Важно: учтите, что изменить цвет командной строки можно только в том случае, если вы выполнили чистую установку Windows с нуля. Если же вы обновлялись, тогда командная строка останется в своем утилитарном и классическом черно-белом виде. Кроме того, изменить внешний вид Командной строки можно только на компьютерах с Windows 10 Fall Creators Update и выше. Если ваш ПК еще не обновлен, тогда установите Windows 10 Fall Creators Update, используя разные методы инсталляции новой версии Windows.
Также советуем вам обратить внимание на статью «Командная строка в Windows 10», где собрано много интересной информации о консоли Windows.
Как изменить цвет командной строки
- Перейдите по ссылке на GitHub и кликните на файл colortool.zip. Сохраните этот архив в любом удобном вам месте.
Чтобы было легче ориентироваться, приводим примеры каждой из схем с соответствующей командой, которую надо использовать:
colortool -b campbell.ini
colortool -b campbell-legacy.ini
colortool -b cmd-legacy.ini
colortool -b deuteranopia.itermcolors
colortool -b OneHalfDark.itermcolors
colortool -b OneHalfLight.itermcolors
colortool -b solarized_dark.itermcolors
colortool -b solarized_light.itermcolors
Команда —b в этом случае отвечает за применение выбранной темы к Командной строке в целом. Если ее не использовать, тема будет применена только к текущему окну и после перезагрузки Командной строки вы снова будете наблюдать традиционное черно-белое оформление. Есть также другие команды. -? Выводит окно справки, —c отображает цветовую таблицу текущей схемы, —q применяет тему без вывода таблицы на экран (тихое применение), —d применяет тему только к стандартным значениям в реестре, а —v отображает версию.
Теперь вам надо нажать правую кнопку мыши по строке заголовка окна Командной строки и выбрать Свойства.
Ничего не изменяйте и просто нажмите Ок. Таким образом вы сохраните внесенные изменения.
Перезагрузите Командную строку, и вы увидите, что примененная вами тема теперь используется по умолчанию. Нам больше всего понравился последний светлый вариант. Смотрится стильно и современно.
По умолчанию утилита для изменения цвета Командной строки включает в себя лишь несколько цветовых схем. Они вполне неплохие, но устроят далеко не каждого пользователя. Если вы хотите больше вариантов, можете скачать себе темы iTerm2 Color Schemes. Там на выбор есть примерно больше сотни различных цветовых вариаций, так что вы наверняка найдете тему, которая вас устроит.
- Перейдите по ссылке на GitHub и нажмите на кнопку CloneorDownload. Затем нажмите DownloadZIP.
- Откройте скачанный архив, найдите там папку Schemes и скопируйте ее содержимое в папку Schemes, только уже в директории, где вы поместили утилиту для изменения внешнего вида командной строки.
- После этого примените выбранную вами тему точно таким же образом, как и в инструкции выше. Так как предварительного просмотра нет, вам придется вслепую подбирать темы, судя по их названию. Далеко не лучший метод найти для себя подходящую тему, но что есть, то есть.
Конечно, далеко не каждый станет заморачиваться с поиском подходящей ему темы (мало кто использует Командную строку вообще), но те, кто активно пользуется Командной строкой, наверняка захотят немного прокачать внешний вид консоли на своем компьютере.
А какую тему вы выбрали для себя? Или же ваш выбор – это стандартный и лаконичный черный с белым вариант? Расскажите в комментариях.
У меня есть программа командной строки, которая выводит на экран входа.
Я хочу, линий ошибку в красный. Есть ли специальные коды символов, которые я могу вывести, чтобы переключить цвет текста на красный, а затем переключить его обратно на белый?
Я использую ruby, но я предполагаю, что это будет то же самое на любом другом языке.
14 ответов
вам необходимо получить доступ к [Win32 Console API] (http://msdn.microsoft.com/en-us/library/ms682073 (VS.85%29.aspx). К сожалению, я не знаю, как ты сделаешь это с Руби. В Perl я бы использовал С Win32::Консоли модуль. Консоль Windows не отвечает на escape-коды ANSI.
по словам статья о раскрашивании Ruby output что artur02 упомянуто, вам нужно установить и загрузить драгоценный камень win32console.
на windows, вы можете сделать это легко тремя способами:
теперь вы можете расширить строку с помощью небольшого метода red
Также Вы можете расширить строку, как это, чтобы получить больше цветов:
или, если вы можете установить камни:
пожалуйста см. документы для термина / ansicolor для Больше информации и возможного использования.
Я думаю, что настройка цвета текста консоли довольно специфична для языка. Вот пример в C# из MSDN:
вы можете использовать escape-последовательность ANSI, но это не будет делать то, что вы хотите в современных версиях Windows. Википедия имеет очень информативную статью:
таким образом, ответ на ваш первоначальный вопрос почти наверняка » нет.»Однако вы можете изменить цвет переднего плана без написания escape-последовательности, например, путем вызова функции Win32 API. Я не знаю, как делать такие вещи в Ruby с моей макушки, но кто-то другой, кажется, сумел:
Я полагаю, вы хотите использовать 4 для темно-красного или 12 для ярко-красного и 7 для восстановления цвета по умолчанию.
надеюсь, что это помогает!
на ANSI escape-коды:
32-разрядный символьный режим (подсистема:консоль) приложения Windows не записывают escape-последовательности ANSI в консоль
Они должны интерпретировать действия escape-кода и вызывать собственный API консоли вместо
где цвета определяются следующим образом:
например, чтобы изменить фон на синий, а передний план на серый, вы должны ввести:
Я написал небольшой кросс-платформенный камень, который обрабатывает это плавно работает на Windows или POSIX-системах, как под MRI, так и под JRuby.
он не имеет зависимостей и использует коды ANSI в системах POSIX, а также FFI (JRuby) или Fiddler (MRI) для Windows.
чтобы использовать его, просто:
ColorConsole предоставляет методы вывода строк текста в разных цветах с помощью консоли.пишите и утешайте.положить функции.
посетите домашнюю страницу проекта на https://github.com/agardiner/color-console для более подробной информации.
насколько я знаю, это невозможно с командной строкой, это всего лишь один цвет.
вы можете изменить цвет с помощью простой программы C#http://powerof2games.com/node/31 описывает, как вы можете обернуть вывод консоли, чтобы добиться эффекта.
стандартная спецификация C/C++ для вывода в командную строку не указывает никаких возможностей для изменения цвета окна консоли. Тем не менее, в Win32 есть много функций для выполнения такой вещи.
самый простой способ изменить цвет консоли Win32 — через системную команду в iostream.h. Эта функция вызывает команду DOS. Чтобы изменить цвета, мы будем использовать его для вызова команды color. Например, system(«Color F1»); сделает синие консоль на белом.
цвета, доступные для использования с командой, — это шестнадцать цветов DOS, каждый из которых представлен шестнадцатеричной цифрой. Первый фон, второй план.
просто это небольшое прикосновение цвета делает консольные программы более визуально приятными. Однако команда Color изменит цвет всей консоли. Для управления отдельными ячейками нам нужно использовать функции из windows.h.
Do для этого вам нужно использовать SetConsoleAttribute функции
много старого ANSI Цветовые Коды работа. Код для красного переднего плана-что-то вроде Escape — [31m. Escape-это символ 27, так что это» 33[31m «или» x1B[31m», в зависимости от вашей схемы экранирования.
[39m-это код для возврата к цвету по умолчанию.
также можно указать несколько кодов одновременно, чтобы установить цвет переднего плана и фона одновременно.
возможно, вам придется загрузить ANSI.Сыс, см. на этой странице.
в конечном итоге вам нужно позвонить SetConsoleTextAttribute. Вы можете получить дескриптор буфера экрана консоли из GetStdHandle.
Я использую бесплатную программу Windows tail под названием baretail (google it) в течение веков, которая позволяет вам делать Windows-appified версию команды Unix tail. Он позволяет раскрашивать линии в зависимости от определяемых вами ключевых слов. Что приятно в этом решении, так это то, что оно не привязано к определенному языку или настройке и т. д., Вы просто определяете свою цветовую схему и ее, как donkey kong. В моем личном топ-10 бесплатных помощников!