Команда COLOR изменяет цвет текста и фона в окне командной строки Windows. Вся настройка укладывается в один аргумент из двух шестнадцатеричных цифр — никаких меню и настроек реестра.
- Синтаксис команды COLOR
- Ключи и параметры
- Примеры использования
- Классический зелёный терминал
- Красный текст на чёрном фоне — аварийный режим
- Стандартный белый текст на чёрном фоне
- Жёлтый текст на синем фоне
- Смена цвета в bat-скрипте
- Проверить текущий атрибут цвета
- Частые ошибки и решения
- Когда применять, а когда нет
- FAQ
- Как сбросить цвет CMD до стандартного?
- Можно ли задать цвет только для части текста в CMD?
- Сколько цветов доступно для команды COLOR?
- Работает ли COLOR в PowerShell?
- Изменение COLOR сохраняется после перезагрузки?
- Можно ли использовать COLOR в скрипте для индикации ошибок?
Синтаксис команды COLOR
COLOR [атрибут]
атрибут — двузначный шестнадцатеричный код: первая цифра задаёт цвет фона, вторая — цвет текста. Если аргумент не указан, цвета сбрасываются до значений по умолчанию (те, что установлены в свойствах окна).
Доступные значения цветов:
| Код | Цвет |
|---|---|
| 0 | Чёрный |
| 1 | Синий |
| 2 | Зелёный |
| 3 | Голубой |
| 4 | Красный |
| 5 | Лиловый |
| 6 | Жёлтый |
| 7 | Белый |
| 8 | Серый |
| 9 | Ярко-синий |
| A | Ярко-зелёный |
| B | Ярко-голубой |
| C | Ярко-красный |
| D | Ярко-лиловый |
| E | Жёлтый (яркий) |
| F | Ярко-белый |
Ключи и параметры
Команда COLOR не имеет дополнительных ключей — единственный аргумент это двузначный атрибут. Если указать только одну цифру, команда завершится с ошибкой. Если указать одинаковые цифры (например COLOR 11), команда вернёт код ошибки ERRORLEVEL 1 — нельзя задать одинаковый цвет текста и фона.
| Параметр | Описание | Пример |
|---|---|---|
[атрибут] | Два шестнадцатеричных символа: фон + текст | COLOR 0A |
| (без аргумента) | Сброс цветов до значений по умолчанию | COLOR |
/? | Вывод встроенной справки | COLOR /? |
Примеры использования
Классический зелёный терминал
Воссоздаёт вид «зелёного монитора» — чёрный фон, ярко-зелёный текст. Используется для ретро-скриптов или просто снижения нагрузки на зрение при ночной работе.
COLOR 0A
Фон станет чёрным (0), текст — ярко-зелёным (A). Изменение действует на всё текущее окно CMD немедленно.
Красный текст на чёрном фоне — аварийный режим
Удобно для скриптов, которые сигнализируют об ошибке: переключите цвет в начале обработчика ошибки.
COLOR 0C
Текст станет ярко-красным (C) на чёрном фоне (0). После обработки ошибки верните стандартные цвета командой COLOR 07.
Стандартный белый текст на чёрном фоне
Возвращает привычную цветовую схему CMD, если цвета были изменены скриптом.
COLOR 07
Это не то же самое, что COLOR без аргумента: здесь цвета задаются явно, тогда как COLOR без аргумента восстанавливает значения из свойств окна, которые могут быть произвольными.
Жёлтый текст на синем фоне
Контрастная схема, хорошо читается на проекторе или при демонстрации экрана.
COLOR 1E
Фон — синий (1), текст — жёлтый яркий (E).
Смена цвета в bat-скрипте
Используйте COLOR в начале скрипта, чтобы визуально выделить его запуск, и сбросьте цвет в конце.
@echo off COLOR 3F echo Скрипт запущен... :: ... тело скрипта ... COLOR
После завершения скрипта окно вернётся к цветам, заданным в свойствах CMD.
Проверить текущий атрибут цвета
Напрямую COLOR не возвращает текущий атрибут. Чтобы узнать его, используйте переменную %CMDEXTVERSION% или читайте значение реестра:
reg query "HKCU\Console" /v ColorTable00
Либо просто введите COLOR /? — справка показывает текущий атрибут в строке «Текущий цвет».
Частые ошибки и решения
| Проблема | Причина | Решение |
|---|---|---|
| Команда выполняется, но цвет не меняется | Цвет фона и текста совпадают (например COLOR 33) | Используйте разные коды для фона и текста |
ERRORLEVEL 1 после COLOR | Указаны одинаковые цифры: невозможная схема | Проверьте атрибут — оба символа должны быть различны |
| Цвет сбрасывается при открытии нового окна CMD | COLOR действует только на текущий сеанс | Прописать команду в автостарт CMD через реестр: HKCU\Software\Microsoft\Command Processor\AutoRun |
| В PowerShell команда COLOR не работает | COLOR — внутренняя команда CMD, в PowerShell не существует | Используйте $Host.UI.RawUI.BackgroundColor и ForegroundColor в PowerShell |
| Цвет не меняется в Windows Terminal | Windows Terminal использует собственные темы, COLOR может быть переопределён профилем | Настройте цвета в Settings → Profiles → Appearance или используйте команду в классическом cmd.exe |
Когда применять, а когда нет
Команда COLOR подходит для временной смены схемы в текущем сеансе CMD и для визуального разделения этапов в bat-скриптах (например, зелёный — нормальный режим, красный — ошибка). Она не требует прав администратора и работает в любой версии Windows начиная с Windows 2000.
Не используйте COLOR для постоянной настройки терминала — изменение не сохраняется между сеансами. Для постоянных тем используйте свойства окна CMD (правая кнопка на заголовке → Свойства) или настройки профиля Windows Terminal. В PowerShell аналог — свойства $Host.UI.RawUI.ForegroundColor и $Host.UI.RawUI.BackgroundColor.
FAQ
Как сбросить цвет CMD до стандартного?
Выполните COLOR без аргументов. Это восстанавливает цвета из свойств окна CMD, заданных пользователем или по умолчанию системой.
Можно ли задать цвет только для части текста в CMD?
Нет, команда COLOR меняет цвет сразу всего окна. Для покрашенных фрагментов внутри скрипта придётся менять цвет перед каждым echo и возвращать обратно.
Сколько цветов доступно для команды COLOR?
16 цветов (коды 0–9 и A–F). Итого 16×15 = 240 допустимых комбинаций фона и текста (одинаковые пары запрещены).
Работает ли COLOR в PowerShell?
Нет. COLOR — внутренняя команда интерпретатора cmd.exe. В PowerShell используйте свойства $Host.UI.RawUI.BackgroundColor и $Host.UI.RawUI.ForegroundColor.
Изменение COLOR сохраняется после перезагрузки?
Нет, изменение действует только в текущем сеансе CMD. Для постоянного сохранения пропишите команду в ключ реестра HKCU\Software\Microsoft\Command Processor\AutoRun или измените цвета через Свойства окна.
Можно ли использовать COLOR в скрипте для индикации ошибок?
Да, это распространённая практика. Переключайтесь в COLOR 0C перед выводом сообщения об ошибке и возвращайтесь к COLOR 07 после. Проверяйте ERRORLEVEL после COLOR — если он равен 1, значит коды совпали и команда не выполнилась.


