Цветной текст в консоли Windows
Вложений: 2
Привет All!
В один из рабочих дней, сидя на работе нужно было написать один скриптик в .cmd (командном) файле. Собственно скрипт то я написал, но захотелось добавить изюминки в выводе текста. И вот оно: # Печатает текст с необходимым цветом без перевода каретки на новую строку # Синтакс: # call:write цветHEX "выводимый текст" :write ( rem # Возможно первым аргументом передали текст set arg1=%1 set arg2=%2 if "%arg1:~0,1%%arg1:~-1%"=="""" ( rem # Если цвет не указали просто выводим с дефолтным цветом 0<nul set /p"=%arg1:~1,-1%" exit /b ) rem # Удаляем начальные и конечные кавычки в тексте set arg2=%arg2:~1,-1%~ rem # Заменяем продублированные кавычки в одни set arg2=%arg2:""="% rem "# Заменяем двойные кавычки другими set arg2=%arg2:"=`% echo off 0<nul set /p .=.>"%arg2%" findstr /v /a:%arg1% /R "^$" "%arg2%" nul set /p .= <nul del "%arg2%" > nul 2>&1 exit /b ) # Печатает текст с необходимым цветом с переводом каретки на новую строку # Синтакс: # call:writeln цветHEX "выводимый текст" :writeln ( call:write %1 %2 echo. exit /b )Этот скрипт выводит текст в консоль винды с нужным нам цветом, использование очень простое, вызов происходит так: call:writeln 02 "Привет мир!"Данная команда выведет текст темно-зеленого цвета и переведет каретку на новую строку. Либо: call:write 02 "Привет мир!"Тоже выведет темно-зеленого но каретку оставит в конце строки. Цвета в консоле стандартные от 00 до 0F то-есть всего 16 цветов. PS. На форуме конечно некоторые символы не печатаются, то есть скрипт будет работать не правильно из-за того что строка 25 в коде деформирована... Там между равенством и скобкой < должно быть не только три пробела а символы удаления, то есть в символьных кодах HEX: 080808202020080808 Смотрите вложение! PPSSS. Файлы .txt переименуйте в .cmd/.bat |
devote, чёт не фурыкает, пока не понял в чём причина,
можешь приложить готовый батник, который у тебя работает, с нужным chcp и pause, чтобы просто запустить и посмотреть, что вот оно |
bes,
приложил тест PS. хотя у меня там в тесте кодовая страница 866 стоит, но и 1251 работает норм. Это уж кому что. |
обнаружил-таки в чём причина, антивирус по-тихому блокировал исполнение, запустил от имени администратора, только тогда предложил варианты действий
|
Часовой пояс GMT +3, время: 05:40. |