如何在批处理中为回显添加颜色?
我只想回声说类似的话
echo <Colorful text here>
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您调用自定义 C++ 程序,可能会更容易。
虽然实际上没有必要做这样的事情,但这是可能的。
有一个预制的 C++ 脚本编译成 Windows 可以运行的东西,位于http://www.codeproject.com/Articles/17033/Add-Colors-to-Batch-Files
该网站解释了您需要了解的大部分内容,但我将在这里提供一些帮助示例。
您可以使用的颜色代码是
我猜你想要做的是彩色文本,将颜色恢复正常,然后创建一个新行。为此,您将使用以下...
cecho {0C}Hello world!{#}{\n}
Run Code Online (Sandbox Code Playgroud)
当你运行上面的命令时,“Hello world!” 将以红色显示。
第一个数字是背景,第二个数字是前景(实际文本颜色)。
另一个例子是黑底黄字:
cecho {0E}Yellow is a nice color.{#}{\n}
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您尝试为所有内容着色,请使用 Windows 附带的颜色命令。
color 0c
Run Code Online (Sandbox Code Playgroud)
(黑底绿字)
编辑:
如果您希望仅使用批处理(无其他资源)为单行着色,请尝试以下示例:
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
Run Code Online (Sandbox Code Playgroud)
这要归功于图坦卡蒙。
原始答案(来自图坦卡蒙)位于/sf/answers/1615074261/
| 归档时间: |
|
| 查看次数: |
57458 次 |
| 最近记录: |