批处理文件中的颜色回显

时间:2015-03-12 16:10:43

标签: batch-file echo

如何在批处理中为回声添加颜色?

我想回声说像

echo <Colorful text here>

1 个答案:

答案 0 :(得分:1)

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

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

有一个预制的C ++脚本编译成Windows可以在http://www.codeproject.com/Articles/17033/Add-Colors-to-Batch-Files

运行的东西

该网站主要解释了您需要了解的所有内容,但我会在这里给出一些示例帮助。

您可以使用的颜色代码是

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

我猜你要做的是彩色文字,将颜色恢复正常,然后换个新线。 为此,您将使用以下内容...

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

对图坦卡蒙的信用。

https://stackoverflow.com/a/23072489/3931279

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