Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.78/37: Рейтинг темы: голосов - 37, средняя оценка - 4.78
ht1515
шарпопочитатель
58 / 25 / 7
Регистрация: 31.01.2010
Сообщений: 1,020
1

Можно ли как-то выделить строку другим цветом?

09.06.2011, 11:27. Просмотров 6958. Ответов 24
Метки нет (Все метки)

color 6
echo Подождите немного, пожалуйста(60 секунд)!
так не катит,он весь текст делает таким.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2011, 11:27
Ответы с готовыми решениями:

Как выделить одну строку другим цветом
Не судите строго, второй день изучаю С++. Прочитал много тем, нашел несколько подходящих тем, но...

Как выделить элемент списка ListBox другим цветом?
Как можно в listbox выделить несколько отдельных элементов списка другим цветом. А если нельзя, то...

Выделить нужный текст другим цветом цветом
как выделить a,a, a другим цветом

8.2 Упр.прилож.: Дерево значений - можно ли выделить цветом/шрифтом одну строку ?
Вывожу в упр.форму дерево значений - могу посмотреть тек.строку/тек.данные есть еще тек.элемент где...

Как 'отрисовать' определенную строку в ListView другим цветом
Подскажите пожалуйста как 'отрисовать' определенную строку в ListView другим цветом.

24
atributz
833 / 347 / 12
Регистрация: 04.10.2009
Сообщений: 589
09.06.2011, 12:28 2
Что нельзя то нельзя, а вы как думали.
0
ComSpec
3415 / 1959 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
27.12.2015, 04:46 3
Лучший ответ Сообщение было отмечено vavun как решение

Решение

Вчера обратил внимание, что данной темой интересовались, поэтому написал код, показывающий, что выделять определённым цветом заданные строки (или даже части строк) можно:

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
@echo off
 
echo Здравствуйте!
 
call :color 6
call :echo "Подождите, пожалуйста, 3 секунды..."
>nul timeout/nobreak 3
 
call :color 5
call :echo "Подождите, пожалуйста, ещё 3 секунды..."
>nul timeout/nobreak 3
 
call :color 4
call :echo "Подождите, пожалуйста, ещё 3 секунды..." /
>nul timeout/nobreak 3
 
echo До свиданья!
>nul timeout/nobreak 3
 
exit/b
 
 
:color
 set c=%1& exit/b
 
:echo
 for /f %%i in ('"prompt $h& for %%i in (.) do rem"') do (
  pushd "%~dp0"& <nul>"%~1_" set/p="%%i%%i  "& findstr/a:%c% . "%~1_*"
  (if "%~2" neq "/" echo.)& del "%~1_"& popd& set c=& exit/b
 )
.

Обязательно сохраните пакетный файл с данным кодом в кодировке OEM-866!
1
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
27.12.2015, 09:41 4
ComSpec, если бы вы еще рассказали, что происходит (точнее почему так происходит) в подпрограмме :echo

Добавлено через 18 минут
findstr бяка.
валит ошибки на символах █ и ░

А у меня уже такие идеи были
0
27.12.2015, 09:41
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
27.12.2015, 12:45 5
1
Изображения
 
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
27.12.2015, 12:59 6
ComSpec, я пока не очень понимаю, что происходит, но все же спрошу:
Как в этом коде можно внести вывод findstr в переменную с последующей заменой символов
set var=%t:#=█%
и уже потом вывод в консоль ?


В 145 строке есть символы, которые тут не отображаются (победа над _: без пробелов в одной строке), потому батник в архиве
0
Вложения
Тип файла: zip mario.zip (506 байт, 25 просмотров)
ComSpec
3415 / 1959 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
27.12.2015, 19:44 7
Цитата Сообщение от vavun Посмотреть сообщение
В 145 строке есть символы, которые тут не отображаются (победа над _: без пробелов в одной строке), потому батник в архиве.


В функции :echo как раз и происходит генерация символа бэкспейса, поэтому в 145-ой строке можно было эти символы не вставлять, а написать
Windows Batch file
<nul>"%~1_" set/p="%%i%%i  %%i%%i"
.




Цитата Сообщение от vavun Посмотреть сообщение
Как в этом коде можно внести вывод findstr в переменную с последующей заменой символов
set var=%t:#=█%
и уже потом вывод в консоль ?


Никак. Это можно сделать только через for, а такой разбор напрочь убьёт цветной вывод.




Но "обмануть" findstr всё-таки можно!

Эх, прощай, форматирование кода...

Код пакетного файла:

! 2>nul& @cls& echo off

>nul chcp 65001

echo.

call :color C
call ::echo "%s%%s%%s%%s%%s%%s%░░░░░░░░░"


call :color C
call :echo "%s%%s%%s%%s%░░░░░░░░░░░░░░░░░░"


call :color 6
call :echo "%s%%s%%s%%s%░░░░░░" /
call :color E
call :echo "░░░░" /
call :color 6
call :echo "░░" /
call :color E
call :echo "░░"


call :color 6
call :echo "%s%%s%░░" /
call :color E
call :echo "░░" /
call :color 6
call :echo "░░" /
call :color E
call :echo "░░░░░░" /
call :color 6
call :echo "░░" /
call :color E
call :echo "░░░░░░"


call :color 6
call :echo "%s%%s%░░" /
call :color E
call :echo "░░" /
call :color 6
call :echo "░░░░" /
call :color E
call :echo "░░░░░░" /
call :color 6
call :echo "░░" /
call :color E
call :echo "░░░░░░"


call :color 6
call :echo "%s%%s%░░░░" /
call :color E
call :echo "░░░░░░░░" /
call :color 6
call :echo "░░░░░░░░"


call :color E
call :echo "%s%%s%%s%%s%%s%%s%░░░░░░░░░░░░░░"


call :color 6
call :echo "%s%%s%%s%%s%░░░░" /
call :color C
call :echo "░░" /
call :color 6
call :echo "░░░░░░"


call :color 6
call :echo "%s%%s%░░░░░░" /
call :color C
call :echo "░░" /
call :color 6
call :echo "░░░░" /
call :color C
call :echo "░░" /
call :color 6
call :echo "░░░░░░"


call :color 6
call :echo "░░░░░░░░" /
call :color C
call :echo "░░░░░░░░" /
call :color 6
call :echo "░░░░░░"


call :color E
call :echo "░░░░" /
call :color 6
call :echo "░░" /
call :color C
call :echo "░░" /
call :color E
call :echo "░░" /
call :color C
call :echo "░░░░" /
call :color E
call :echo "░░" /
call :color C
call :echo "░░" /
call :color E
call :echo "░░░░░░"


call :color E
call :echo "░░░░░░" /
call :color C
call :echo "░░░░░░░░░░░░" /
call :color E
call :echo "░░░░░░"


call :color E
call :echo "░░░░" /
call :color C
call :echo "░░░░░░░░░░░░░░░░" /
call :color E
call :echo "░░░░"


call :color C
call :echo "%s%%s%%s%%s%░░░░░░%s%%s%%s%%s%░░░░░░"


call :color 6
call :echo "%s%%s%░░░░░░%s%%s%%s%%s%%s%%s%%s%%s%░░░░░░"


call :color 6
call :echo "░░░░░░░░%s%%s%%s%%s%%s%%s%%s%%s%░░░░░░░░"

echo.
>nul pause

exit/b


:color
set c=%1& set "s= "& exit/b

:echo
for /f %%i in ('"prompt $h& for %%i in (.) do rem"') do (
pushd "%~dp0"& 2>nul md "mario"& pushd "mario"
<nul>"%~1" set/p="%%i %%i"& findstr/a:%c% . *
for /l %%i in (1 1 100) do <nul>nul pause
(if "%~2" neq "/" echo.)& popd& rd/q/s "mario"& popd& exit/b
)
.

Пакетный файл с данным кодом сохраните в кодировке UTF-8!
1
Миниатюры
Можно ли как-то выделить строку другим цветом?  
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
27.12.2015, 19:48 8
ComSpec, ай красота, но чего то не хватает )

Можно ли как-то выделить строку другим цветом?

Движок форума ничего не поел при отправке ?
Вроде перепроверил, но результат аналогичный
0
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
27.12.2015, 19:52 9
тьфу, кодировка не та.
Но все равно что то не то
0
Миниатюры
Можно ли как-то выделить строку другим цветом?  
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
27.12.2015, 19:54 10
Что с бомом, что без бома - одинаково
0
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
27.12.2015, 21:28 11
Вот она, рыба моей мечты (с)

Но все равно я чего то не пойму
0
Миниатюры
Можно ли как-то выделить строку другим цветом?  
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
27.12.2015, 21:30 12
ComSpec, а можно скрин всего окна cmd ? )
0
ComSpec
3415 / 1959 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
27.12.2015, 21:44 13
vavun, движок форума ничего не съел. Это я проверил копированием кода со страницы.
0
Миниатюры
Можно ли как-то выделить строку другим цветом?  
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
27.12.2015, 21:45 14
хм ... восьмерка.
Тогда почему у меня не работает ?
Затвикал я, видать, свою винду
0
Kirilus3000
2 / 1 / 1
Регистрация: 04.05.2019
Сообщений: 27
08.10.2019, 13:06 15
Привет всем!Я тут к вам пришёл,попытался разобраться в коде Марио.Максимум что смог сделать-скопировать часть кода чтобы можно было сделать цветной текст и как его "Вызвать",но не могли бы вы помочь мне сделать разноцветный код в одной строке?(желательно без всяких дополнений в коде,а лишь цветной текст)
Цитата Сообщение от vavun Посмотреть сообщение
хм ... восьмерка.
Тогда почему у меня не работает ?
Затвикал я, видать, свою винду
Кхм.Не знаю значения этого слова,но могу лишь предполагать его значение.Но это не от "затвикавания",у меня вообще не выводится и у меня Windows 10.
0
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
08.10.2019, 20:08 16
Цитата Сообщение от Kirilus3000 Посмотреть сообщение
сделать разноцветный код в одной строке?(желательно без всяких дополнений в коде,а лишь цветной текст)
Голый cmd врядли способен на большее

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
@echo off
 
 
call :ECHO "Разный " 0B
call :ECHO "цвет " 0C
call :ECHO "в " 0D
call :ECHO "одну " 0E
call :ECHO "строку" 0F
call :ECHO "." 01
 
exit /b
 
 
 
 
:ECHO
for /f %%i in ('"prompt $h& for %%i in (.) do rem"') do (set Z=%%i)
pushd "%TEMP%" && (
    <nul>"%~1^" set /p="%Z%%Z%  %Z%%Z%"
    findstr /a:%2 . "%~1^*"
    del "%~1^"
    popd
    )
exit /b
0
Kirilus3000
2 / 1 / 1
Регистрация: 04.05.2019
Сообщений: 27
08.10.2019, 20:33 17
Благодарю конечно,но там ошибка открытия чего-то и кодировка крякнулась.Ну кодировку легко поправить,а что там ищет не пойму.

Добавлено через 2 минуты
Попробовал изменить кодировку на 65001,но там крякнулся findstr,да и в начале ещё заметил ошибку.Прошу помочь.Тут я бессилен.
0
vavun
10444 / 5414 / 852
Регистрация: 07.04.2013
Сообщений: 15,620
08.10.2019, 23:18 18
Kirilus3000, нет ошибок. Кодировка 866
Можно ли как-то выделить строку другим цветом?
0
Kirilus3000
2 / 1 / 1
Регистрация: 04.05.2019
Сообщений: 27
09.10.2019, 14:17 19
Ваш оригинальный код без изменений кроме как добавление паузы.
0
Миниатюры
Можно ли как-то выделить строку другим цветом?  
alpap
2533 / 1528 / 519
Регистрация: 26.04.2015
Сообщений: 5,155
09.10.2019, 15:22 20
Kirilus3000, у вас код точно не в 866 кодировке, покажите скриншот кода именно где это видно. Или как вариант, покореженная винда, в частности именно findstr.
0
09.10.2019, 15:22
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2019, 15:22

Выделить Элименты матрицы другим цветом
Помогите доделать программу нужно Главную диагональ выделить цветом при выводе матриц....

Выделить другим цветом зафиксированную новость
Как на главной странице сайта выделить другим цветом зафиксированную новость. Чего-то не...

Выделить другим цветом минимальный положительный элемент
Пожалуйста помогите решить задачу. Дан массив из N целых чисел, значения которых лежат в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.