Windows 的 BAT CMD 窗口设置全局背景和文字色很容易,但输出单行带颜色的文字很少见,研究了几天分享如下
参考资料
http://bbs.bathome.net/thread-60616-1-1.htmlhttps://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences?redirectedfrom=MSDN#extended-colors下面是 demo,保存成 UTF-8 编码
@
echo off
@
chcp 65001>nul
title Windows BAT CMD 单行文字颜色
rem 取控制符到变量。(1BH=27=033)
for /F "tokens=1 delims=#" %%a in ('"prompt #$E# & echo on & for %%b in (1) do rem"') do set "ESC=%%a"
rem 256 颜色表
https://www.ditig.com/256-colors-cheat-sheetrem 背景色
set colorb=28
rem 文字色
set colorf=196
rem set 中文变量的行上下都要加换行,不然会解释成都在一行从而出错
set say1=只有背景色
set say2=只有文字色
set say3=带背景和前景色的文字
echo 普通文字
echo %esc%[48;5;%colorb%m%say1%%esc%[0m
echo %esc%[38;5;%colorf%m%say2%%esc%[0m
echo %esc%[48;5;%colorb%;38;5;%colorf%m%say3%%esc%[0m
pause