批处理文件中的颜色回显

Color echo in batch files

如何在 Batch 中为 echo 添加颜色?

我只想回声说

echo <Colorful text here>

如果您调用自定义 C++ 程序,可能会更容易。

虽然没有必要做这样的事情,但这是可能的。

http://www.codeproject.com/Articles/17033/Add-Colors-to-Batch-Files

有一个编译成 Windows 可以 运行 的预制 C++ 脚本

该站点主要解释了您需要了解的所有内容,但我将在此处提供一些帮助示例。

您可以使用的颜色代码是

  • 0 = 黑色 8 = 灰色
  • 1 = 海军蓝 9 = 蓝色
  • 2 = 绿色 A = 石灰
  • 3 = 蓝绿色 B = 浅绿色
  • 4 = 栗色 C = 红色
  • 5 = 紫色 D = 紫红色
  • 6 = 橄榄色 E = 黄色
  • 7 = 银色 F = 白色

我猜你想做的是给文本上色,return颜色恢复正常然后换行。 为此,您将使用以下内容...

cecho {0C}Hello world!{#}{\n}

当你运行上面的时候,"Hello world!"会出现红色

第一位是背景,第二位是前景(实际文字颜色)。

另一个例子是黑底黄字:

cecho {0E}Yellow is a nice color.{#}{\n}

编辑:

如果您要为所有内容着色,请使用 Windows 附带的颜色命令。

color 0c

(黑底绿字)

编辑:

如果您希望仅使用批处理(没有其他资源)为单行着色,请尝试以下示例:

echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
  set "DEL=%%a"
)
echo say the name of the colors, don't read

call :ColorText 0a "blue"
call :ColorText 0C "green"
call :ColorText 0b "red"
echo(
call :ColorText 19 "yellow"
call :ColorText 2F "black"
call :ColorText 4e "white"

goto :eof

:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof

这要归功于图坦卡蒙。

原始答案(来自图坦卡蒙)在