Как сделать зеленый шрифт в cmd
Перейти к содержимому

Как сделать зеленый шрифт в cmd

  • автор:

Различные цвета текста для ввода и вывода в cmd.exe

введите сюда описание изображения

Нужно выставить для ввода один цвет, для вывода другой. Есть ли альтернативный cmd с возможностью таких настроек?

Отслеживать
4,314 14 14 золотых знаков 43 43 серебряных знака 94 94 бронзовых знака
задан 5 мар 2016 в 13:20
51 1 1 серебряный знак 4 4 бронзовых знака
Если вам дан исчерпывающий ответ, отметьте его как верный (галка напротив выбранного ответа).
5 мар 2016 в 15:10

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

Установка цветов по умолчанию для текста и фона в текстовых окнах.

COLOR [цвета]

цвета Атрибуты цветов для текстовых окон

Атрибуты цветов задаются в виде ДВУХ шестнадцатеричных цифр — первая задает цвет фона, а вторая определяет цвет текста. Каждая цифра может иметь следующие значения:

0 = Черный 8 = Серый 1 = Синий 9 = Светло-синий 2 = Зеленый A = Светло-зеленый 3 = Голубой B = Светло-голубой 4 = Красный C = Светло-красный 5 = Лиловый D = Светло-лиловый 6 = Желтый E = Светло-желтый 7 = Белый F = Ярко-белый 

Если аргумент не указан, команда восстанавливает исходный выбор цветов, каким он был на момент запуска CMD.EXE. Это значение извлекается из текущего текстового окна, из значения ключа /T или из значения параметра реестра DefaultColor.

Это из справки к команде color .

Вам надо просто дать команду

color 0a 

например, дайт «хацкерский» терминал — кислотно-зеленые буквы на черном фоне.

Как изменить цвет фона и цвет шрифта командной строки Windows?

Многие пользователи Windows даже не подозревают о всех способностях этой операционной системы, когда дело касается настройки пользовательского интерфейса. Сегодня мы хотим рассказать о том, как поменять цвет в командной строке со стандартного на любой другой.

Кто-то из пользователей вообще не пользуется командной строкой, а кто-то использует ее постоянно. Категория последних пользователей знает, что стандартные цвета довольно скучные и очень быстро надоедают. В стандартном исполнении командная строка имеет черный фон и белый шрифт.

Как поменять цвет в командной строке?

  • можно использовать специальные инструкции внутри командной строки;
  • можно использовать пользовательский интерфейс.

Как поменять цвет в командной строке при помощи инструкций

  1. Откройте командную строку любым удобным способом. Это можно сделать через основное меню или через командное окно «Выполнить», если ввести в нем команду: «cmd».
  2. В командной строке введите команду: «color -help». С помощью этой команды вы выведите список доступных цветов, поддерживаемых командной строкой. Но самое главное, что каждому цвету будет закреплен о обозначение в виде цифры и буквы латинского алфавита.
  3. После того как вы определитесь с идентификаторами цветов для шрифта и фона, можете в командной строке задать команду, которая сменит цвета. Команда строится по такому шаблону: «color ».
  • «color 46» — будет задан красный фон и желтый цвет текста;
  • «color 02» — будет задан черный фон и зеленый цвет текста;
  • «color 24» — будет задан зеленый фон и красный цвет текста;
  • и другие комбинации.

Как поменять цвет командной строки с помощью пользовательского интерфейса

  1. Запустите командную строку любым удобным способом.
  2. Кликните по рамке командной строки правым кликом мыши, чтобы вызвать меню.
  3. В открывшемся меню выберите пункт «Свойства», чтобы вам открылось дополнительное окно настройки.
  4. В открывшемся окне настроек выберите вкладку «Цвета». В этой вкладке можно будет поменять цвет фона и текста командной строки. Причем, все доступные цвета будут располагаться тут же. Вам останется только выбрать что вы хотите отредактировать: фон или шрифт и определить им цвет. Тут же будет располагаться небольшое демонстрационное окно, где вы сможете сразу увидеть созданную комбинацию цветов в деле.
  5. После всех манипуляций нужно будет сохранить изменения.

Заключение

После прочтения этой статьи до конца, перед вами уже не будет стоять вопрос, как поменять цвет фона или текста командной строки. Если вы отлично дружите с командной строкой, тогда можете воспользоваться первым способом, который состоит специальны командных инструкций. Если вам «ближе» пользовательский интерфейс, тогда можете поменять цвет в cmd вторым способом.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

CMD/BAT: Вывод разноцветного текста

Предлагаю к рассмотрению две функции, основанные на базе утилиты findstr, которые позволяют выводить текст заданного цвета:

:write :: Вывести цветную надпись без перевода строки :: %1 - цвет :: %2 - текст надписи :: %3 - флаг, любое значение, если нужно двоеточие в конце строки
:writeLn :: Вывести цветную надпись с переводом строки :: %1 - цвет :: %2 - текст надписи :: %3 - флаг, любое значение, если нужно двоеточие в конце строки
call :writeLn 2C " Hello, World "

Выведет «Hello, World» красным цветом на зеленом фоне.

Особенности:
1. Цвет задается аналогично команде color, т.е. цвет фона и текста двумя шестнадцатеричными цифрами.
2. Учитывая то, что цветным выводится имя файла, далеко не любой текст можно вывести этим методом. Текст должен быть корректным с точки зрения составления имени файла.
3. В каталоге %TEMP% создается и затем удаляется временный подкаталог.
4. В конце строки можно вывести двоеточие, хотя оно не может присутствовать в имени файла. Для этого надо установить любое значение в качестве третьего параметра функции.
5. Пробелы в конце строки съедаются, в начале строки сохраняются.
6. В строках длинной 78 и 79 символов при выводе в конце может добавиться двоеточие и точка, т.е. если строка подходит к концу экрана.

Пример с двоеточием:

call :write 0F "Random" 1 call :writeLn 0E " %random%"

В таком примере:

call :writeLn 0A "123456789012345678901234567890123456789012345678901234567890123456789012345678"

В конце строки будет выведено двоеточие зеленого цвета и точка обычного цвета.

Полноценный пример и реализация функций в аттаче, т.к. имеются непечатные символы.

http://s019.radikal.ru/i605/1301/11/f1fa003d5d50.png

Post’s attachments

color.cmd 1.32 kb, 196 downloads since 2013-01-05

You don’t have the permssions to download the attachments of this post.

2 Ответ от wisgest 2013-01-05 13:14:58 (изменено: wisgest, 2013-10-23 23:39:16)

  • wisgest
  • Разработчик
  • Неактивен

Re: CMD/BAT: Вывод разноцветного текста

В целом хорошо, идея ясно выражена — можно в Коллекцию (23.10.2013: сделано) в теперяшнем виде.

Но я попридираюсь:
0) неплохо, если бы в примере присутствовал также вывод с другим цветом фона;
1) если рассматривать работу в полевых условиях, то:
1.1) «~tempFolder» — слишком осмысленное название, велика вероятность попадания;
1.2) могут отсутствовать права на запись в текущую папку; для подобных целей предназначена %TEMP%
1.3) в экстремальных условиях

 (color.cmd>nul) | color.cmd for /l %i in (1 1 10) do @start "%i" cmd /c color.cmd 

(которые не учитываются в большинстве скриптов использующих вспомогательные временные файлы) потерпит неудачу.

3 Ответ от Arigato 2013-01-05 15:21:13 (изменено: Arigato, 2013-01-05 15:36:39)

  • Arigato
  • Разработчик
  • Неактивен
Re: CMD/BAT: Вывод разноцветного текста

На счет %TEMP% тоже думал. Изменил первый пост.

4 Ответ от wisgest 2013-01-05 20:45:54

  • wisgest
  • Разработчик
  • Неактивен

Re: CMD/BAT: Вывод разноцветного текста

Почему так замысловато

 set dir=%CD% %TEMP:~0,2% cd %TEMP:~2% . %dir:~0,2% cd %dir:~2%

(Почему не PUSHD, POPD или хотя бы CD /D?)

5 Ответ от Arigato 2013-01-05 21:43:52

  • Arigato
  • Разработчик
  • Неактивен
Re: CMD/BAT: Вывод разноцветного текста

Переделал и обновил первый пост (аттач).

6 Ответ от wisgest 2013-01-05 23:58:29 (изменено: wisgest, 2013-01-06 00:13:10)

  • wisgest
  • Разработчик
  • Неактивен

Re: CMD/BAT: Вывод разноцветного текста
 set tempFolder=~%time:~6,2%%time:~9,2%_%random%.tmp md "%tempFolder%"

всё-таки не поможет при одновременном запуске нескольких экземпляров, т.к ни %RANDOM%, ни %TIME% не обеспечивают неповторяемость значений.
Лично я переписал бы это на пару строк длиннее, зато более непробиваемо:

 set x=0 :write.TRY_MD set "tempFolder=%~n0.%x%%time:~-2%" md "%tempFolder%" 2>nul if errorlevel 1 set /a "x+=1" & goto write.TRY_MD

(последние две строки можно переписать короче:

 md "%tempFolder%" 2>nul || (set /a "x+=1" & goto write.TRY_MD)

Для проверки можно попробовать запустить командый файл в нескольких окнах одновременно

for /l %i in (1 1 10) do @start "%i" cmd /c color.cmd

для обоих случаев.

7 Ответ от wisgest 2013-01-06 03:26:15

  • wisgest
  • Разработчик
  • Неактивен

Re: CMD/BAT: Вывод разноцветного текста
 pushd %TEMP% set tempFolder=. md "%tempFolder%" cd "%tempFolder%" . cd .. rd /s /q "%tempFolder%" popd

можно сократить на два шага:

 set tempFolder=%TEMP%\. md "%tempFolder%" pushd "%tempFolder%" . popd rd /s /q "%tempFolder%"

В итоге, с учётом сказаного в #6,
процедуру write можно переписать в виде

:write :: Вывести цветную надпись без перевода строки :: %1 - цвет :: %2 - текст надписи :: %3 - флаг, любое значение, если нужно двоеточие в конце строки setlocal set x=0 :write.TRY_MD set "tempFolder=%TEMP%\%~n0.%x%%time:~-2%" md "%tempFolder%" 2>nul || (set /a "x+=1" & goto write.TRY_MD) pushd "%tempFolder%" set /p .=."%~2" findstr /a:%~1 /c:"." /s "%~2" if "%~3"=="" (set /p .=  

8 Ответ от Arigato 2013-01-06 14:26:27 (изменено: Arigato, 2013-01-06 14:27:49)

  • Arigato
  • Разработчик
  • Неактивен
Re: CMD/BAT: Вывод разноцветного текста

Неплохо. Ну а если вместо x использовать random:

:write :: Вывести цветную надпись без перевода строки :: %1 - цвет :: %2 - текст надписи :: %3 - флаг, любое значение, если нужно двоеточие в конце строки setlocal :write1 set "tempFolder=%TEMP%\%~n0.%time:~-2%.%random%" md "%tempFolder%" 2>nul || goto write1 pushd %tempFolder% set /p .=."%~2" findstr /a:%~1 /c:"." /s "%~2" if "%~3"=="" (set /p .= 

Проблем вроде бы не должно быть.

P.S. На счет меток хотелось бы уточнить. Метка "write.TRY_MD" - 12 символов. Ограничение длинны метки в 8 символов еще действует или это было в старых версиях cmd?

9 Ответ от wisgest 2013-01-06 19:26:52

  • wisgest
  • Разработчик
  • Неактивен

Re: CMD/BAT: Вывод разноцветного текста

Arigato пишет:

Ну а если вместо x использовать random:
Проблем вроде бы не должно быть.

Скорее всего, не должно; просто лично у меня предубеждение против повторных обращений при неудаче к датчику псевдослучайных чисел, т.к. чисто теоретически при определённых условиях может произойти его зацикливание.

Arigato пишет:

Ограничение длинны метки в 8 символов еще действует или это было в старых версиях cmd?

В Windows XP такого ограничения нет даже при DISABLEEXTENSIONS, было ли оно в более ранних версиях CMD.EXE — не знаю, но почему-то сомневаюсь. Более вероятно, что это ограничение было в COMMAND.COM.

10 Ответ от Arigato 2013-01-07 00:51:57 (изменено: Arigato, 2013-01-07 00:52:19)

  • Arigato
  • Разработчик
  • Неактивен
Re: CMD/BAT: Вывод разноцветного текста

В XP'шной ntcmds.chm написано:

Использование допустимых значений метки
Метка может включать пробелы, но не может включать другие разделители, такие как точка с запятой или знак равенства. В команде goto используются только первые восемь знаков метки. Например, следующие метки эквивалентны и рассматриваются как :hithere0:

:hithere0

:hithere01

:hithere02

Совпадение меток в пакетных программах
Метка, заданная в команде, должна соответствовать метке в тексте пакетной программы. Метка в пакетной программе должна начинаться с двоеточия (:). В Windows XP строка пакетной программы, начинающаяся с двоеточия (:), опознается как метка и не обрабатывается как команда. Если строка начинается с двоеточия, все присутствующие в ней команды обработаны не будут. Если в пакетном файле не содержится заданной метки, программа будет остановлена, а на экран будет выведено следующее сообщение:

Метка не найдена.

11 Ответ от wisgest 2013-01-07 01:46:55 (изменено: wisgest, 2013-01-07 01:47:14)

  • wisgest
  • Разработчик
  • Неактивен

Re: CMD/BAT: Вывод разноцветного текста

Я знаю, что написано, но воспроизвести отбрасывание «лишних» знаков, как и метки с пробелами, что-то не получается.

Цвет текста в командном файле

При разработке командного файла с выводом довольно большого объёма информации возникла необходимость выделения цветом части текста, например, сообщений о сбоях красным цветом, чтобы они сразу бросались в глаза. Хотелось, чтобы можно было вывести определённым цветом какую-то одну, две строки текста, или вывод определённой программы.

Способы изменения цвета в командной строке и bat файле

Есть несколько довольно часто используемых способов, но они имеют существенные недостатки

  • стандартная команда COLOR меняет цвет сразу всего текста в окне
  • манипуляции с ANSY.SYS и ESC-последовательностями возможность выводить на экран в процессе работы пакетного файла текст с форматированием по цвету предполагают административные полномочия и не работают в современных версиях Windows
  • Раскраска текста с помощью findstr CMD/BAT: Вывод разноцветного текста имеет ограничения по выводимому тексту.

Альтернативное решение – программа nhcolor

В итоге, пришлось написать решение, которое

Пример nhcolor

  • может менять цвет текста в консоли по строкам
  • не ограничивает выводимый текст
  • не требует административных полномочий.

Таблица цветов

Цвета обозначаются теми же кодами, что и в команде COLOR.

Атрибуты цветов задаются в виде ДВУХ шестнадцатеричных цифр — первая задает цвет фона, а вторая определяет цвет символа.

Цифра Цвет
0 Черный
1 Синий
2 Зеленый
3 Голубой
4 Красный
5 Лиловый
6 Желтый
7 Белый
8 Серый
9 Светло-синий
A Светло-зеленый
B Светло-голубой
C Светло-красный
D Светло-лиловый
E Светло-желтый
F Ярко-белый

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

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