批处理文件中的颜色回显
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
这要归功于图坦卡蒙。
原始答案(来自图坦卡蒙)在
如何在 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
这要归功于图坦卡蒙。
原始答案(来自图坦卡蒙)在