Batch file (批处理)一行上有多种颜色

Batch file (批处理)一行上有多种颜色,batch-file,Batch File,我想知道是否有一种方法可以在一行文本上使用多种颜色(例如,“Hello”是蓝色,“world”是绿色时的“Hello world”) 我很抱歉一开始就问了这个愚蠢的问题……我做了大量的研究,其中一些没有得到正确的解决,我希望能找到更简单的方法来得到我想要的。对不起,伙计们=(@Echo Off 呼叫:颜色9“你好” 呼吁:给“世界”涂上颜色 暂停>Nul 退出/B :颜色 ::卡洛斯写的第20节。 :: http://www.dostips.com/forum/viewtopic.php?f=3

我想知道是否有一种方法可以在一行文本上使用多种颜色(例如,“Hello”是蓝色,“world”是绿色时的“Hello world”)

我很抱歉一开始就问了这个愚蠢的问题……我做了大量的研究,其中一些没有得到正确的解决,我希望能找到更简单的方法来得到我想要的。对不起,伙计们=(

@Echo Off
呼叫:颜色9“你好”
呼吁:给“世界”涂上颜色
暂停>Nul
退出/B
:颜色
::卡洛斯写的第20节。
:: http://www.dostips.com/forum/viewtopic.php?f=3&t=4453
::参数:hexColor文本[\n]
::在windows XP、7、8中受支持。
::在XP中,扩展ascii字符打印为点。
::对于打印引号,请使用空文本。
SetLocal EnableExtensions EnableDelayedExpansion
设置“Text=%~2”
如果未定义文本(设置文本=^”)
Subst`:“!Temp!”>num&`:&Cd\
如果不存在`(
回音(|)(暂停>数字和查找字符串“^”>`)
设置/P“=。”>`
@Echo关闭
呼叫:颜色9“你好”
呼吁:给“世界”涂上颜色
暂停>Nul
退出/B
:颜色
::卡洛斯写的第20节。
:: http://www.dostips.com/forum/viewtopic.php?f=3&t=4453
::参数:hexColor文本[\n]
::在windows XP、7、8中受支持。
::在XP中,扩展ascii字符打印为点。
::对于打印引号,请使用空文本。
SetLocal EnableExtensions EnableDelayedExpansion
设置“Text=%~2”
如果未定义文本(设置文本=^”)
Subst`:“!Temp!”>num&`:&Cd\
如果不存在`(
回音(|)(暂停>数字和查找字符串“^”>`)

设置/P“=。”>>`太棒了!!!+1为CarlosAmazing!!!+1为CarlosAmazing!!!+1为Carlos
@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