2013-12-14 2 views
1

Мне интересно, есть ли способ использовать несколько цветов в одной строке текста (например: «Hello world», когда «Hello» - синий, а «мир» - зеленый.(BATCH) Несколько цветов на одной строке

Извините, что задал этот глупый вопрос в первую очередь ... Я занимался тонкой исследованиями, и некоторые из них не работали правильно, и я надеялся, что вы получите более простые способы получить то, что я хотел. Извините, ребята = (

ответ

1
@Echo Off 
Call :Color 9 "hello" 

Call :Color A " world" 

Pause >Nul 
Exit /B 


:Color 
:: v20 by carlos. 
:: http://www.dostips.com/forum/viewtopic.php?f=3&t=4453 
:: Arguments: hexColor text [\n] 
:: Supported in windows XP, 7, 8. 
:: In XP extended ascii characters are printed as dots. 
:: For print quotes, use empty text. 
SetLocal EnableExtensions EnableDelayedExpansion 
Set "Text=%~2" 
If Not Defined Text (Set Text=^") 
Subst `: "!Temp!" >Nul &`: &Cd \ 
If Not Exist `.7 (
Echo(|(Pause >Nul &Findstr "^" >`) 
Set /P "=." >>` <Nul 
For /F "delims=;" %%# In (
'"Prompt $H;&For %%_ In (_) Do Rem"') Do (
Set /P "=%%#%%#%%#" <Nul >`.3 
Set /P "=%%#%%#%%#%%#%%#" <Nul >`.5 
Set /P "=%%#%%#%%#%%#%%#%%#%%#" <Nul >`.7)) 
Set /P "LF=" <` &Set "LF=!LF:~0,1!" 
For %%# in ("!LF!") Do For %%_ In (
\/:) Do Set "Text=!Text:%%_=%%~#%%_%%~#!" 
For /F delims^=^ eol^= %%# in ("!Text!") Do (
If #==#! SetLocal DisableDelayedExpansion 
If \==%%# (Findstr /A:%~1 . \` Nul 
Type `.3) Else If /==%%# (Findstr /A:%~1 . /.\` Nul 
Type `.5) Else (Echo %%#\..\`>`.dat 
Findstr /F:`.dat /A:%~1 . 
Type `.7)) 
If "\n"=="%~3" (Echo() 
Goto :Eof 

Here's the color function by carlos

+0

Удивительный !!! +1 для Carlos – SachaDee

Смежные вопросы