Выпущена новая версия 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 можно на странице загрузки.

Узнать больше

Описание программы nhcolor

Новая версия программы nhcolor v2.0.0
Метки:

Новая версия программы nhcolor v2.0.0: 8 комментариев

  • 05.02.2022 в 08:20
    Постоянная ссылка

    У меня используется некое промышленное оборудование на Windows XP
    SP3, поэтому многие настройки ограничены.

    Вот так у меня это работает.
    Вот так у меня это работает

    Вот такой шрифт. К сожалению, это единственный поддерживаемый русский язык фонт.
    Вот такой шрифт

    Ответить
      • 08.02.2022 в 04:14
        Постоянная ссылка

        Была ошибка в html, я поправил.
        Вообще, можно использовать картинки из imgbb и аналогичных сервисов, вставляя код html с предпросмотром и ссылкой на большую картинку.

        Ответить
    • 15.02.2022 в 03:44
      Постоянная ссылка

      Какой язык выбран в Windows как основной для не-Unicode программ? Командная строка запущена стандартно или как Unicode?

      Ответить
      • 22.02.2022 в 23:13
        Постоянная ссылка

        Разобрался. Птичий язык, это если не установлена русская локаль. У меня оборудование буржуйское, поэтому стоит локаль USA. Поменял на Русскую в Control Panel —> Regional and Language Options, и все заработало. В принципе, можно оставить и так, но если есть возможность и, главное, желание, может быть учесть это в следующих версиях. И еще, хотелка, если следующая версия все же будет, может сделаете, что бы была возможность выводить цветные строки без перевода строки. Типа, в одну строчку можно было печатать разноцветный текст.

        Ответить
  • 04.02.2022 в 22:47
    Постоянная ссылка

    Очень к сожалению, nhcolor не работает в англ версии Windows. Пробовал в батнике менять chcp на 866, но ничего не помогает. «echo Проверка» выдает нормально, а «echo Проверка | nhcolor 0c» — красными буквами на птичьем языке. «nhcolor 0c Проверка» — вообще игнорирует

    Ответить
    • 05.02.2022 в 04:39
      Постоянная ссылка

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

      Ответить

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

Ваш адрес email не будет опубликован.