- Команда COLOR — установить цвет символов и фона консоли Windows
- COLOR — описание команды и примеры использования
- Описание
- Синтаксис
- Параметры
- Примечания
- Примеры использования
- Команда COLOR: меняем цвет текста и фона в командной строке Windows
- Windows 10 console colors not working (Virtual terminal control character sequences)
- /EDIT I’ve made few more experiments.
- coloring Windows XP cmd.exe
- 7 Answers 7
Команда COLOR — установить цвет символов и фона консоли Windows
Команда 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 .
COLOR — описание команды и примеры использования
Описание
COLOR — Изменяет цвет текста и фона в окне командной строки для текущего сеанса.
Синтаксис
Где т — цвет текста
ф — цвет фона
Параметры
В следующей таблице перечислены допустимые шестнадцатеричные числа, которые можно задать в качестве значений параметров т и ф.
Параметр | Описание |
---|---|
0 | Черный |
1 | Синий |
2 | Зеленый |
3 | Голубой |
4 | Красный |
5 | Сиреневый |
6 | Желтый |
7 | Белый |
8 | Серый |
9 | Светло-синий |
A | Светло-зеленый |
B | Светло-голубой |
C | Светло-красный |
D | Светло-сиреневый |
E | Светло-желтый |
F | Яркий белый |
/? | Выводит справочную информацию в командной строке. |
Примечания
- Чтобы задать стандартные цвета в окне командной строки, щелкните левый верхний угол этого окна, выберите команду Умолчания, перейдите к вкладке Цвета и укажите цвета для параметров Текст на экране и Фон экрана.
- Для изменения цветов окна командной строки в текущем сеансе можно воспользоваться командой cmd /t:тф.
- Если цвета текста и фона совпадают, команда color устанавливает значение параметра ERRORLEVEL в единицу (1).
Примеры использования
Чтобы изменить цвет текста на красный, а цвет фона на белый в окне командной строки, введите следующую команду:
Чтобы вернуть все настройки, которые были по-умолчанию наберите команду без параметров:
Команда COLOR: меняем цвет текста и фона в командной строке Windows
По умолчанию командная строка Windows располагает чёрным фоном с текстом белого цвета, который располагается на нём. Если такие оформление вам надоело, то, как ни странно, это можно изменить без особых усилий.
Конечно, можно изменить данные настройки через графический интерфейс системы (правой кнопкой мыши по рамке окна командной строки → Свойства → Цвета), но сегодня мы рассмотрим полезную команду COLOR, которая позволяет делать то же самое без дополнительных щелчков мышью.
Изменение цвета текста и фона в командной строке Windows.
Синтаксис команды color очень прост:
Цвета задаются шестнадцатеричными цифрами. Первая цифра отвечает за цвет фона, вторая за цвет текста. Можно использовать следующие цифры:
0 — черный;
1 — синий;
2 — зеленый;
3 — голубой;
4 — красный;
5 — лиловый;
6 — желтый;
7 — белый;
8 — серый;
9 — светло-синий;
A — светло-зеленый;
B — светло-голубой;
C — светло-красный;
D — светло-лиловый;
E — светло-желтый;
F — ярко-белый.
Указав сочетания двух цифр, мы можем задать цвет текста и фона. Например, красный на белом:
Если указать в команде одну цифру, то это будет воспринято как указание цвета текста на чёрном фоне. Например, команда
даст нам светло-зеленый текст на чёрном фоне.
Следует учитывать, что данные настройки будут действовать только пока текущее окно командной строки открыто. Но что делать, если мы хотим сохранить их на постоянной основе? В этом нам помогут два параметра реестра: DefaultColor и ScreenColors.
Для начала посмотрим на DefaultColor. Его можно задать как для отдельного пользователя:
так и для всех пользователей:
Значение параметра из раздела пользователя (HKEY_CURRENT_USER) имеют приоритет над значением параметра для всех.
По умолчанию DefaultColor имеет значение 0x00000000. Это значит, что настройки цвета определяются другим параметром:
Для установки настроек достаточно отредактировать DefaultColor или ScreenColors. Например, мы уже устанавливали красный цвет текста на белом фоне. Вписав подобное значение в реестре, можно установить эту настройку по умолчанию.
Установить одинаковые цвета текста и фона при помощи команды color нельзя. Подобная команда (например, color 55 ) возвратит значение кода ошибки ERRORLEVEL равное 1. Но вот через реестр Windows подобную глупость совершить можно.
Лиловый текст на лиловом фоне в командной строке.
К счастью, и возвратить всё на свои места в случае ошибки не составит труда. Напоминаю, что параметр ScreenColors по умолчанию принимает значение 0x00000007. Это белый текст на чёрном фоне.
Windows 10 console colors not working (Virtual terminal control character sequences)
Console’s text colors are not working in Windows 10 build 15063.296 .
I have dug into it a bit and found myself lost. Here’s everything I’ve found.
From several discussions, it seems that the support for ‘Virtual terminal sequences’ or ‘control character sequences’ was removed in recent versions of Windows 10 (#1, #2). Some also adviced to downgrade a git version (that didn’t work for me).
I tried to copy a cmd.exe from my other machine, the version was 10.0.10586.0 and the coloring worked, however, upon further reading and experimenting, I am no longer sure where the problem lies.
See compared the outputs of ls —color=auto
git\git-cmd.exe , git\git-bash.exe , windows’ original cmd.exe and older cmd.exe
According to this site, the support for coloring does not lie in a command window, but in a conhost.exe , which brings up the question —Why does it work in some consoles and in some not?
If you start powershell.exe from cmd.exe, it will inherit the conhost settings since it’s attaching to a previously created console, not allocating a new one; this also enables escape sequences in powershell.exe.
Given this quote, I tried the following that only deepened my confusion. I run a ls —color=auto command in each cmd version, then tried running older cmd from newer and vice versa and got the following results. (red underline is cmd v15063 , green underline is cmd v10586 )
old, new from old
new, old from new
/EDIT I’ve made few more experiments.
What is interesting/confusing is the different result of type and cat and a compared result of ls —color=auto with the same content type d from a file.
Old console
New console
coloring Windows XP cmd.exe
I love the Linux console, but due to many reasons have to work under Windows XP. So now I decided to make it look better but couldn’t find any documentation/posts about it. Is it possible at all?
7 Answers 7
You can’t do that because the way the Windows console works is fundamentally different from the Linux terminal. On Linux the coloring is done using ANSI escape sequences. From Wikipedia:
ANSI escape sequences are characters embedded in the text used to control formatting, color, and other output options on video text terminals. Almost all terminal emulators designed to show text output from a remote computer, and (except for Windows) to show text output from local software, interpret at least some of the ANSI escape sequences.
This pretty much means that coloring (and formatting in general) can be controlled by the user, even when the original program had no provision for that, by simply using strings which contain ANSI escapes.
On Windows, the console formatting has to be done explicitly by the program. Each character cell is comprised of two 16-bit codes: a Unicode character and a style word (mainly color information). The program has to use the low-level API output functions to set the style information, otherwise all characters use the default style (gray on black).
The moral of the story I guess is that Windows and Linux are two completely different operating systems. It is therefore better to get used to their idiosyncrasies, than to fight to fit either one to the mindset of the other. That way madness lies.