Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/121: Рейтинг темы: голосов - 121, средняя оценка - 4.77
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16

Цветной вывод в консоли (обсуждение кода розы)

06.04.2013, 17:21. Показов 22655. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Обсуждение кода разноцветного вывода в консоли.
Изначальный код: 1) роза, 2) функция печати (1 любой цвет на 1 строку)

Еще примеры.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2013, 17:21
Ответы с готовыми решениями:

Цветной текст в консоли
#include <stdio.h> #include <conio.h> using namespace std; int main(void) { textbackground(BLUE); textcolor(LIGHTGRAY); ...

Цветной текст в консоли С++
В общем, нужно сделать цветной вывод в консоль С++ на Windows, при этом не меняя цвет фона символов, те если у пользователя фон консоли...

Цветной текст в консоли Ubuntu
Хочу выводить информационыые сообщения, просто сообщения и ошибки в консоли разным цветом. Это гораздо удобнее чем пользоваться всякими...

38
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5240 / 2114 / 416
Регистрация: 06.01.2013
Сообщений: 4,845
06.04.2013, 21:42
Лучший ответ Сообщение было отмечено как решение

Решение

Студворк — интернет-сервис помощи студентам
Ну щас будет
Вложения
Тип файла: rar Коды_для_Драгокаса.rar (204 байт, 100 просмотров)
1
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5240 / 2114 / 416
Регистрация: 06.01.2013
Сообщений: 4,845
06.04.2013, 21:43
Только из архива его не запускай, а то он уменя в файл Install_Log залез
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
06.04.2013, 22:05  [ТС]
Охренеть, супер.

За всеми экспериментами, я совершенно упустил из под внимания важность содержимого файла, а ведь именно оно влияло на перевод каретки.
Ну теперь открылось пространство для новых идей.
В ближайшее время какую-нибудь цацу забацаю
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5240 / 2114 / 416
Регистрация: 06.01.2013
Сообщений: 4,845
06.04.2013, 22:15
Ага, однострочный файл даже без использования символа BackSpace не переводит каретку. Только и двоеточие не убирает

Добавлено через 4 минуты
Bash
1
2
3
4
5
6
7
8
@echo off
<nul set /p x=;>file
findstr /v /a:cd "1" "fil*"
del file
<nul set /p x=;>file
findstr /v /a:f2 "1" "fil*"
del file
pause>nul
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5240 / 2114 / 416
Регистрация: 06.01.2013
Сообщений: 4,845
07.04.2013, 12:20
Ну что, написал я программу для вывода любого пиксельного изображения.
Ну, почти любого... с глубиной в 4 бита и скоростью вывода примерно 1 пиксель в секунду.
Так как используются спецсимволы, то код выложить просто так не смогу, он внутри архива.
Пиксельные карты тоже внутри архива. Заодно и формат посмотрите.
Скрины ниже.
P.S. Картинка флага выводилась около 3 минут
Миниатюры
Цветной вывод в консоли (обсуждение кода розы)   Цветной вывод в консоли (обсуждение кода розы)  
Вложения
Тип файла: zip ColorPrint.zip (790 байт, 95 просмотров)
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5240 / 2114 / 416
Регистрация: 06.01.2013
Сообщений: 4,845
07.04.2013, 12:21
Блин... Я тут подумал... Короче, 1024х768 будет около года выводится :-)
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
29.05.2013, 02:50  [ТС]
Тема, как оказалось популярна.
Просили написать на ее основе простенькую функцию.

Произвел несколько модификаций, с учетом изменений от FraidZZ и кода jeb.
Код можно создавать даже в блокноте Windows.

Пользоваться можно. Завтра допишу код ( + хочу добавить все вариации комбинаций цветов), запринтскриню и расскажу, что за модификации сделал.
Остальное читайте в комментариях.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
@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
1
29.05.2013, 04:50

Не по теме:

Цитата Сообщение от Dragokas Посмотреть сообщение
Автора: Dragokas and FraidZZ
АвторЫ...

1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
06.10.2013, 21:33  [ТС]
Автор Anonymоus (он же Inquisitor), используя наши наработки переписал функцию,
лишив ее таких недостатков, как использование временного файла, запрет на концевые пробелы и спецсимволы.

Спецсимволы разрешены все (кроме "!" и "%"), временные файлы не создаются - использован трюк с путём. Но есть и минусы: если конец выведенной строки близок к границе окна, строка может отобразиться некорректно. Самый важный и большой недостаток - не работает под XP (реализация findstr в XP символы 0x08 в пути отображает точками, соответственно, удалить внутри пути, не c конца строки, ничего нельзя).
Тестировалось на Win 7 (x86\x64), Win Server 2008r2. Под XP цветной вывод просто отключается автоматически.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
@Echo Off
SetLocal EnableDelayedExpansion
:: Inquisitor, 2013
:: Использованы следующие материалы:
:: Быстрое получение длины строки: CyberMuesli, [url]http://forum.oszone.net/showpost.php?p=2164186[/url]
:: Получение 0x08: jeb, [url]http://www.dostips.com/forum/viewtopic.php?p=6827#p6827[/url]
:: Идея передачи нескольких параметров: Diskretor, [url]http://forum.oszone.net/post-2201046-7.html[/url]
 
 
Echo.
Call :EchoColor 00 "        "
Call :EchoColor 0D "My Little Cmd" /n
Call :EchoColor 00 "       "
Call :EchoColor D0 "Coding is Magic" /n
Echo.
Echo          Simple demo:
Call :EchoColor 0A "  Text 0123 \>|</&^:;.,*-+=" /n
Call :EchoColor 08 "  -[" 6C " R " 2E " a " 1A " i " 5B " n " 79 " b " 3D " o " F4 " w " 08 "]-" /n
Pause&Exit
 
 
 
:EchoColor [%1=Color %2="Text" %3=/n (CRLF, optional)] (Support multiple arguments at once)
:: Вывод цветного текста. Ограничения - не выводится восклицательный знак, остальные спецсимволы разрешены.
:: Работа с более, чем одним набором параметров
If Not Defined multiple If Not "%~4"=="" (
    Call :EchoWrapper %*
    Set multiple=
    Exit /B
)
SetLocal EnableDelayedExpansion
If Not Defined BkSpace Call :EchoColorInit
:: Экранирование входящего текста от обратных и прямых слэшей, чистка некоторых символов.
Set "$Text=%~2"
Set "$Text=.%BkSpace%!$Text:\=.%BkSpace%\..\%BkSpace%%BkSpace%%BkSpace%!"
Set "$Text=!$Text:/=.%BkSpace%/..\%BkSpace%%BkSpace%%BkSpace%!"
Set "$Text=!$Text:"=\"!"
Set "$Text=!$Text:^^=^!"
:: Если XP, выводим обычный текст.
If "%isXP%"=="true" (
    <nul Set /P "=.!BkSpace!%~2"
    GoTo :unsupported
)
:: Подаем текст на stdout, не создавая временных файлов и используя трюк с путём.
:: В случае неудачи (проблемный\слишком длинный путь?) выводим текст as is, без расцветки.
:: Если результирующая длина строки (плюс уже имеющиеся там символы) превышает ширину консоли, то вывод тоже будет неудачным. Но получить текущую позицию каретки программно нельзя.
PushD "%~dp0"
2>nul FindStr /R /P /A:%~1 "^-" "%$Text%\..\%~nx0" nul
If !ErrorLevel! GTR 0 <nul Set /P "=.!BkSpace!%~2"
PopD
:: Убираем путь, имя файла и дефис с помощью рассчитаного ранее количества символов.
For /L %%A In (1,1,!BkSpaces!) Do <nul Set /P "=!BkSpace!"
:unsupported
:: Выводим CRLF, если указан третий аргумент.
If /I "%~3"=="/n" Echo.
EndLocal
GoTo :EOF
 
:EchoWrapper
:: Обработка аргументов поочерёдно
SetLocal EnableDelayedExpansion
:NextArg
Set multiple=true
:: Ох уж это удвоение "^" при передаче аргументов...
Set $Text=
Set $Text=%2
Set "$Text=!$Text:^^^^=^!"
If Not "%~3"=="" If /I Not "%~3"=="/n" (
    Shift&Shift
    Call :EchoColor %1 !$Text!
    GoTo :NextArg
) Else (
    Shift&Shift&Shift
    Call :EchoColor %1 !$Text! %3
    GoTo :NextArg
)
If "%~3"=="" Call :EchoColor %1 !$Text!
EndLocal
GoTo :EOF
 
 
:EchoColorInit
:: Отрабатывающая при первом запуске родительской функции инициализация нужных переменных
:: Важно! Под XP, в силу реализации тамошнего findstr, 0x08 в путях не работает, заменяясь на точку. Отключаем цветной вывод для XP.
For /F "tokens=2 delims=[]" %%A In ('Ver') Do (For /F "tokens=2,3 delims=. " %%B In ("%%A") Do (If "%%B"=="5" Set isXP=true))
:: Получаем комбинацию "0x08 0x20 0x08" с помощью prompt
For /F "tokens=1 delims=#" %%A In ('"Prompt #$H# & Echo On & For %%B In (1) Do rem"') Do Set "BkSpace=%%A"
:: Рассчитываем требуемое количество символов для подавления всего, кроме выводимого текста
Set ScriptFileName=%~nx0
Call :StrLen ScriptFileName
Set /A "BkSpaces=!strLen!+6"
GoTo :EOF
 
:StrLen [%1=VarName (not VALUE), ret !strLen!]
:: Получение длины строки
Set StrLen.S=A!%~1!
Set StrLen=0
For /L %%P In (12,-1,0) Do (
    Set /A "StrLen|=1<<%%P"
    For %%I In (!StrLen!) Do If "!StrLen.S:~%%I,1!"=="" Set /A "StrLen&=~1<<%%P"
)
GoTo :EOF
 
:: Эта строка должна быть последней и не оканчиваться на CRLF.
-

У меня почему-то не работает. Попрошу у Anonymоus выложить файлом.

Добавлено через 12 минут
Ох... а про XP такую подлянку и не знал. Действительно точки вместо перевода каретки назад отображает,
хоть через Findstr, хоть через Set.

Добавлено через 15 минут
Получается универсальная функция, которая приходит в голову - это изначальная задумка:
- создавать буфер экрана по ширине + 1.
- перезапускать консоль.
- любоваться только максимум 1-м (2-мя) цветами одновременно / на 1 строку максимум.
1
612 / 92 / 14
Регистрация: 15.08.2012
Сообщений: 62
06.10.2013, 21:52
Лучший ответ Сообщение было отмечено как решение

Решение

Dragokas, странно, что у вас не заработало - в коде батника не было спецсимволов, которые могли потеряться при копировании. Возможно, вы не обратили внимания на последний комментарий?
:: Эта строка должна быть последней и не оканчиваться на CRLF.
-
Перевод строки как раз всё дело и портит, из-за него могли быть проблемы. Попробуйте скрипт из вложения, если будете править - он в UTF-8 кодировке без BOM.
UPD: обратил внимание, в скопированном вами коде как раз последняя строка и отсутствует, которая с дефисом и без crlf
Вложения
Тип файла: zip cmdcolor.zip (2.3 Кб, 77 просмотров)
2
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
06.10.2013, 21:58  [ТС]
Ну я буквально так и прочитал =)))

Anonymоus, последней рыски не заметил. Спасибо, так работает.
Код поправил. Классная работа
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.11.2013, 02:10  [ТС]
Лучший ответ Сообщение было отмечено как решение

Решение

Нашел на сером форуме параллельные разработки этого года, которые работают на XP в отличие от наших.
Пока код не анализировал.

1) от Arigato (через временный файл)

Здесь есть спецсимволы, поэтому качать с архива.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
@ echo off
setlocal enabledelayedexpansion
 
call :write 0F "Random" 1
call :writeLn 0E " %random%"
 
echo.
 
set hex=0123456789ABCDEF
for /l %%j in (1, 1, 6) do (
  for /l %%i in (15, -1, 1) do (
    call :write !hex:~%%i,1!!hex:~%%i,1! "[---]"
  )
  echo.
)
 
echo.
 
call :writeLn 2C "   Hello, World   "
 
echo.
 
call :writeLn 0A "123456789012345678901234567890123456789012345678901234567890123456789012345678"
 
echo.
 
pause
color 0B
pause
 
exit /b 0
 
:write
:: Вывести цветную надпись без перевода строки
:: %1 - цвет
:: %2 - текст надписи
:: %3 - флаг, любое значение, если нужно двоеточие в конце строки
  setlocal
  pushd %TEMP%
  set tempFolder=~%time:~6,2%%time:~9,2%_%random%.tmp
  md "%tempFolder%"
  cd "%tempFolder%"
  set /p .=.<nul>"%~2"
  findstr /a:%~1 /c:"." /s "%~2"
  if "%~3"=="" (set /p .=  <nul) else set /p .= <nul
  cd ..
  rd /s /q "%tempFolder%"
  popd
endlocal & exit /b
 
:writeLn
:: Вывести цветную надпись с переводом строки
:: %1 - цвет
:: %2 - текст надписи
:: %3 - флаг, любое значение, если нужно двоеточие в конце строки
  call :write %1 "%~2" %3
  echo.
exit /b

2) от greg zakharov (без временного файла)

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off
  setlocal enabledelayedexpansion
    for /F "tokens=1,2 delims=#" %%i in (^
      '"prompt #$H#$E# & echo on & for %%j in (1) do rem"'^
    ) do (
      set "n=%%i"
    )
    set /p .=.<nul>foo
    call:writeln 0d "colored string"
    del /f /q foo
  endlocal
pause
exit /b
 
:writeln
  set "regex=%~2" !
  set "regex=!regex:"=\"!"
  findstr /a:%1 /prc:"\." "!regex!\..\foo" nul
  set /p .=%n%%n%%n%%n%%n%%n%%n%%n%%n%<nul
exit /b
Вложения
Тип файла: zip color_Arigato.zip (760 байт, 59 просмотров)
Тип файла: zip Color_greg zakharov.zip (455 байт, 71 просмотров)
5
1 / 1 / 0
Регистрация: 24.05.2016
Сообщений: 1
02.06.2016, 14:48
1) Ускорил вывод
2) Добавил возможность вставлять обычные изображения(для этого нужно их переконвертировать через converter.exe(Желательно BMP 16 bit.)
3) Добавил кучу разных плюшек.

Для вывода используйте main.bat
Вложения
Тип файла: zip Picture2cmd.zip (367.8 Кб, 52 просмотров)
1
1 / 1 / 0
Регистрация: 26.07.2016
Сообщений: 45
28.07.2016, 19:43
2) Добавил возможность вставлять обычные изображения(для этого нужно их переконвертировать через converter.exe(Желательно BMP 16 bit.)
а как им пользоватся ?
0
 Аватар для 800gen_gamepro
1 / 1 / 0
Регистрация: 08.06.2016
Сообщений: 24
19.09.2016, 13:14
Что это было?!? Dragokas,признавайся!
Windows Batch file
1
2
echo  >s
findstr /V /a:0d "1" "*"
У меня от этого чуть комп не сломался!
0
19.09.2016, 15:04

Не по теме:

Цитата Сообщение от 800gen_gamepro Посмотреть сообщение
от этого чуть комп не сломался!
Просто не нужно совать пальцы в розетку запускать код, читающий все файлы, в системной директории.
Ибо бинарные файлы, которые там наверняка были, для чтения и вывода в cmd не пригодны.

0
19.09.2016, 18:33  [ТС]

Не по теме:


800gen_gamepro, в том же посте по-русски было написано - демонстрация бага :D

0
6 / 5 / 1
Регистрация: 04.05.2019
Сообщений: 99
09.10.2019, 21:59
Цитата Сообщение от Eva Rosalene Посмотреть сообщение
P.S. Картинка флага выводилась около 3 минут
Замерил-вывелась всего за 19 секунд и да спасибо за код)))

Добавлено через 3 минуты
Сейчас понадобилась бы вставка видео "да он ... волшебник!",но тут культурное общество.КАК!?КАК БЛИН ТЫ ВЫВЕЛ ">"!?

Добавлено через 5 минут
Цитата Сообщение от WeRtOG Посмотреть сообщение
1) Ускорил вывод
2) Добавил возможность вставлять обычные изображения(для этого нужно их переконвертировать через converter.exe(Желательно BMP 16 bit.)
3) Добавил кучу разных плюшек.
Для вывода используйте main.bat
Вложения
Picture2cmd.zip (367.8 Кб, 19 просмотров)
Емась...круто!!!Тут кто круче кого сделает код)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
11.11.2020, 19:21  [ТС]
Использование Console Virtual Terminal Sequences для вывода цветов и стилей шрифта в консоли Windows 10.

Автор: AveYo
https://gist.github.com/AveYo/... 4ebde595ac

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
@echo off
title Windows 10 native ANSI colors fast and compact macro setup by AveYo - just replace ECHO with %%@%% and ^<ESC^> with @
:: Initiate macro just once
call :@echo
 
::  [screenonly] [processed escape sequences]
%@% @^^[101;93m  @[101;93m STYLES
%@% @^^[0m       @[0m Reset
%@% @^^[1m       @[1m Bold
%@% @^^[4m       @[4m Underline
%@% @^^[7m       @[7m Inverse
 
%@% @^^[101;93m  @[101;93m NORMAL FOREGROUND COLORS
%@% @^^[30m      @[30m Black @[0m (black)
%@% @^^[31m      @[31m Red
%@% @^^[32m      @[32m Green
%@% @^^[33m      @[33m Yellow
%@% @^^[34m      @[34m Blue
%@% @^^[35m      @[35m Magenta
%@% @^^[36m      @[36m Cyan
%@% @^^[37m      @[37m White
 
%@% @^^[101;93m  @[101;93m NORMAL BACKGROUND COLORS 
%@% @^^[40m      @[40m Black
%@% @^^[41m      @[41m Red
%@% @^^[42m      @[42m Green
%@% @^^[43m      @[43m Yellow
%@% @^^[44m      @[44m Blue
%@% @^^[45m      @[45m Magenta
%@% @^^[46m      @[46m Cyan
%@% @^^[47m      @[47m White @[0m (white)
 
%@% @^^[101;93m  @[101;93m STRONG FOREGROUND COLORS
%@% @^^[90m      @[90m White
%@% @^^[91m      @[91m Red
%@% @^^[92m      @[92m Green
%@% @^^[93m      @[93m Yellow
%@% @^^[94m      @[94m Blue
%@% @^^[95m      @[95m Magenta
%@% @^^[96m      @[96m Cyan
%@% @^^[97m      @[97m White
 
%@% @^^[101;93m  @[101;93m STRONG BACKGROUND COLORS
%@% @^^[100m     @[100m Black
%@% @^^[101m     @[101m Red
%@% @^^[102m     @[102m Green
%@% @^^[103m     @[103m Yellow
%@% @^^[104m     @[104m Blue
%@% @^^[105m     @[105m Magenta
%@% @^^[106m     @[106m Cyan
%@% @^^[107m     @[107m White
 
%@% @^^[101;93m  @[101;93m COMBINATIONS
%@% @^^[31m      @[31m red foreground color
%@% @^^[7m       @[7m inverse foreground - background
%@% @^^[7;31m    @[7;31m inverse red foreground color
%@% @^^[7m       @[7m before @[31m nested
%@% @^^[31m      @[31m before @[7m nested
 
:: add spaces in front
%@% @^^[10C      @[10C text starts after 10 extra spaces
 
:: CAN EVEN WRITE OVER PREVIOUS LINES!
::  s       = save cursor position
::  10;30H  = move cursor to 10th line, 30th column
::  102;93m = bold/bright green to background, bold/bright yellow to foreground
::  30m     = non-bold/bright black to foreground
::  @@ alone to preserve spaces at the end of text
%@% @[s @[10;30H @[102;93m  Hello  @[30m  World  @[
::  u     = restore cursor position
%@% @[u
:: empty line
%@% @[ 
 
pause>nul
exit/b
 
:@echo Windows 10 native ANSI colors fast and compact macro setup by AveYo - just replace ECHO with %@% and <ESC> with @
set @10=&for /f "tokens=2-5 delims=[." %%k in ('ver') do for %%M in (%%k) do if %%M. equ 10. set "@10=%%m.%%n"
set "@=for %%n in (1,2) do if %%n==2 ( set #=^&(set @echo=!@echo:;=:! ^& for %%s in (!@echo!) do for /f "delims=[" %%t in "
 set @=%@%("%%s") do if %%s==%%t set #=!#!%%~s )^&echo(!#!^&endlocal) else setlocal enableDelayedExpansion ^&set @echo=%
if not defined @10 exit/b macro below restores escape sequences on Win10                macro above stripps @[* on older versions
for /f "tokens=1,2" %%s in ('forfiles /m "%~nx0" /c "cmd /cecho(0x1B 0xFF"') do set "@ESC=%%s" &set "@NBSP=%%t"
set @=for %%n in (1,2) do if %%n==2 (call echo(%%@echo:@[=%@ESC%[%%%@ESC%[0m%@NBSP%) else call ^&set @echo=%
for %%v in (VirtualTerminalLevel ForceV2) do reg add HKCU\Console /v %%v /d 1 /f /t reg_dword >nul 2>nul
exit/b Example: %@% @[102;93m  Hello  @[30m  World  @[                      Documentation: msft Console Virtual Terminal Sequences
Миниатюры
Цветной вывод в консоли (обсуждение кода розы)  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.11.2020, 19:21
Помогаю со студенческими работами здесь

Ввод данных в консоли и вывод одной строкой кода
Здравствуйте, помогите мне сделать вывод текста + сразу readline Я делал так: Console.WriteLine (&quot;Введите чему равен А...

Организация кода, вывод строки в консоли, использование extern
Windows 7, Visual Studio 2013. В проекте файлы:// TestCpp.h using namespace std; extern settings set; bool TestCpp() { ...

Стираемый/цветной текст в консоли. Нужна консультация!
Добрый вечер! У меня есть 2 вопроса: 1. Нужно как-то вывести текст в консоль, который потом можно изменять. Т.е. вывели &quot;Прогресс:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Веб-автоматизация с Python и Selenium
AI_Generated 25.06.2025
Selenium с Python — это комбинация, которая выдержала проверку временем. Несмотря на появление новых инструментов вроде Playwright или Puppeteer, связка Python-Selenium остаётся золотым стандартом. . .
CQRS и Event Sourcing на C#
ArchitectMsa 25.06.2025
За последние несколько лет сложность корпоративных приложений выросла в геометрической прогрессии. Простые монолитные системы уступили место распределенным микросервисам, а нагрузка на корпоративные. . .
Хак домофона или как открыть дверь по номеру
yariko 25.06.2025
Забыли дома ключ. Не проблема. Можно открыть дверь домофона, просто позвонив на свой номер квартиры. Идея состоит в следующем. Внутрь трубки абонента встраивается контроллер, который по звонку сам. . .
Как украсить новогоднюю елку с Q# и Qiskit
EggHead 24.06.2025
Что может быть необычнее, чем применить законы квантовой механики для украшения новогодней елки? Пока другие развешивают обычные гирлянды, я решил объединить свою страсть к квантовым вычислениям с. . .
Системы нулевого доверия на C#
UnmanagedCoder 24.06.2025
Традиционная архитектура безопасности работает по принципу средневекового замка: создаём высокие стены вокруг корпоративной сети, укрепляем ворота межсетевыми экранами и системами обнаружения. . .
Снова не мой путь. Циклическое среднее, я обеими руками за проверку условия, в ракурсе данной задачи - циклическое среднее в топку.
Hrethgir 24.06.2025
Привет. Такой вопрос - нужно выводить среднее математическое между двумя направлениями, интервал значений которых может лежать в диапазоне одного оборота по кругу. Проблема заключается в том, что. . .
Деплой Flask приложения
py-thonny 23.06.2025
За годы работы с Flask я натыкался на одни и те же грабли достаточно часто, чтобы наконец научится их обходить. И сегодня хочу поделится опытом, который сбережет вам немало нервных клеток. Начнем с. . .
WebAssembly и контейнеры в .NET Aspire для оркестрации распределенных архитектур
ArchitectMsa 23.06.2025
Я наблюдаю, как WebAssembly (или просто WASM) постепенно выходит за рамки своего первоначального предназначения — исполнения кода на стороне браузера. Теперь эта технология проникает в серверную. . .
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »