Выпущена новая версия nhcolor – простой и компактной консольной программы для вывода текста в заданном цвете. Программа nhcolor повышает наглядность и читаемость вывода программ и командных файлов тем, что выделяет цветом важные сообщения.
Новые возможности
В новой версии добавлен анализ содержимого текста с помощью фильтров на основе регулярных выражений. Каждый такой фильтр включает выбранный цвет и регулярное выражение.
Обрабатывая входной поток stdin
по строкам, программа nhcolor применяет заданные фильтры и, если в строке найдено вхождение, то вся строка будет напечатана цветом, заданным для этого фильтра.
Фильтры задаются в параметрах командной строки в виде <цвет фона><цвет текста>,<регулярное выражение>
:
nhcolor <цвет фона><цвет текста>,<регулярное выражение> <цвет фона><цвет текста>,<регулярное выражение>...
Таких фильтров может быть задано несколько, и в процессе обработки строки они применяются в том же порядке, как указаны в строке запуска.
Пример строки с 3 фильтрами:
nhcolor 0a,success 0e,warning 0c,error
Эта строка задаёт такие правила работы программы:
- если в строке найдено слово
success
, то вся строка будет напечатана зелёным цветом - если в строке найдено слово
warning
, то вся строка будет напечатана жёлтым цветом - если в строке найдено слово
error
, то вся строка будет напечатана красным цветом - если в строке не найдено ни одно из указанных слов, то вся строка будет напечатана стандартным белым цветом
Особенности, связанные с порядком фильтров:
- если в строке присутствует несколько искомых выражений, например, и слово
success
, и словоwarning
, то вся строка будет напечатана зелёным цветом, потому что первым сработает фильтр указанный в начале строки.
Особенности регулярных выражений:
- Используется синтаксис ECMAScript, описание можно найти в статье TR1 Regular Expressions, с опцией ignore case, то есть без контроля регистра, например, не имеет значения,
success
илиSUCCESS
Использование режима фильтров
Для работы программ нужно направить в неё вывод от другой программы или командного файла, например:
Подсветить жёлтым цветом каталоги в выводе программы dir:
dir | nhcolor 0e,^<DIR^>
Выделить в выводе программы ping зеленым цветом строки с TTL, а красным – строки с «превышен» или «сбой»:
ping ya.ru -n 100 | nhcolor 0a,TTL 0c,"превышен" 0c,"сбой"
Отметить зелёным, жёлтым или красным строки со статусом выполнения командного файла:
my.bat | nhcolor 0a,success 0e,warning 0c,error

А также фильтры можно применять для более удобного просмотра сохраненных файлов протокола, например:
type my.log | nhcolor 0a,success 0e,warning 0c,error
Загрузить новую версию программы
Скачать новую версию программы nhcolor можно на странице загрузки.
У меня используется некое промышленное оборудование на Windows XP
SP3, поэтому многие настройки ограничены.
Вот так у меня это работает.
Вот так у меня это работает
Вот такой шрифт. К сожалению, это единственный поддерживаемый русский язык фонт.
Вот такой шрифт
Картинки не подтянулись. Как их вставить тут?
Была ошибка в html, я поправил.
Вообще, можно использовать картинки из imgbb и аналогичных сервисов, вставляя код html с предпросмотром и ссылкой на большую картинку.
Какой язык выбран в Windows как основной для не-Unicode программ? Командная строка запущена стандартно или как Unicode?
Разобрался. Птичий язык, это если не установлена русская локаль. У меня оборудование буржуйское, поэтому стоит локаль USA. Поменял на Русскую в Control Panel —> Regional and Language Options, и все заработало. В принципе, можно оставить и так, но если есть возможность и, главное, желание, может быть учесть это в следующих версиях. И еще, хотелка, если следующая версия все же будет, может сделаете, что бы была возможность выводить цветные строки без перевода строки. Типа, в одну строчку можно было печатать разноцветный текст.
спасибо за обратную связь
Очень к сожалению, nhcolor не работает в англ версии Windows. Пробовал в батнике менять chcp на 866, но ничего не помогает. «echo Проверка» выдает нормально, а «echo Проверка | nhcolor 0c» — красными буквами на птичьем языке. «nhcolor 0c Проверка» — вообще игнорирует
У меня работает. Windows 10 английская. Программа nhcolor.exe юникодная, поэтому подмена кодировки не требуется.

Вот, просто добавил текст на русском в файл примера, приложенный к программе (выделен жёлтым).
Для корректного вывода русского текста проверьте, что кодировка bat файла — OEM 866.Это если русский выбран по умолчанию.
И какой шрифт задан для окна командной строки. Можно ещё запустить консоль в unicode — cmd /u