Well Gracias
Почитаю.
Цитата amel27:
п.1 можно решить помещением BackSpace в файл »
|
Спасибо, так и сделали. А потом обернули все это в функцию печати разным цветом в одной строке.
Частично не дописал демо-режим (хотел цветовую палитру - видимо, когда дописал функционал - заснул
).
Рабочий прототип с оптимизацией под скорость:
Код:
@echo off
:: Цветной вывод в консоли
:: Автора: Dragokas and FraidZZ
:: Часть кода (получение служебного символа BackSpace 0x08) заимствована у jeb (dostips.com)
:: Демонстрация работы с функцией окрашивания текста в консоли
:: Эти 6 строк оставляем как есть (это часть функции цвета - Инициализация)
SetLocal
md "%temp%\_ColorText" 2>nul
pushd "%temp%\_ColorText"
if %errorlevel%==0 del /F /A /Q *.*
set LastColorText=Default
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%A in (1) do rem"') do set "DEL=%%a"& <nul set /p "x=%%a">Default
:: Настраиваю консоль по вкусу: по-шире - параметр cols. Высоту по-уже - параметр lines.
mode con cols=100 lines=40
Color 17
echo Выше по коду командой Color настраиваем цвет вывода консольных команд по-умолчанию.
echo Справка: Color /?
echo 17 - это белый шрифт на синем фоне.
echo.
:: Концевой пробел и спецсимволы запрещены
Call :ColorText 0B "Мой текст ярко-голубым цветом на черном фоне))"
Call :ColorText 0D " Печатаю в этой же строке розовым цветом"
Call :ColorText 0A ". Зеленым"
echo.
:: Однострочная многоцветная команда
Call :ColorText 0C "Каждый" 06 " охотник" 0E " желает" 0A " знать" 0B " где" 09 " сидит" 03 " фазан"
:: echo. - это переход на новую строку.
echo.&echo.
Call :ColorText 4B "Демонстрация завершена"
echo.&echo.
Call :ColorText 0E "Вывожу справку"
echo.&echo.
:: Это Вам не нужно и все, что ниже для работы функции тоже не нужно (кроме самой функции :ColorText, естественно :)
for /f "delims=] tokens=1*" %%a in ('color /?^| find /n /v ""^| findstr /R "\[[123456789]\]"') do echo.%%b
echo.
::Эти последние строки - служебные (не трогать!!!)
popd
::rd /s /q "%temp%\_ColorText" 2>nul
pause>nul
goto :eof
:ColorText
:: Функция печати цветного текста
:: %1-вх.параметр - Цвет в формате HEX
:: %2-вх.параметр - Текст в цвете
:: Концевой пробел, одиночная концевая точка, знаки \?:*"<>| не могут быть использованы в качестве текста
ren "%LastColorText%" "%~2" 2>nul
set "LastColorText=%~2"
findstr /V /a:%~1 "Like color text? Just ask Dragokas and FraidZZ how it possible :)" "%~2*" 2>nul
if "%~3"=="" Exit /B
shift& shift& goto ColorText