Windows BAT CMD 单行文字颜色,支持中文

2023-03-04 19:56:55 +08:00
 tux
Windows 的 BAT CMD 窗口设置全局背景和文字色很容易,但输出单行带颜色的文字很少见,研究了几天分享如下
参考资料
http://bbs.bathome.net/thread-60616-1-1.html
https://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-sheet
rem 背景色
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
1064 次点击
所在节点    分享创造
1 条回复
shangyu7
2023-03-04 23:02:41 +08:00
厉害的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/921160

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX