ANSI彩色显示
批处理中要实现彩色显示,只要输出文本前用ESC[...m 转义即可。[ 符号前面有个非打印字符ESC,要输入ESC字符,按住Alt键,然后按数字小键盘,2、7,然后松开Alt键即可:
ESC语法格式:
[表示转义开始,代码可以有多个,用分号 ; 分隔,m表示结束 ANSI转义序列
代码说明:
代码 | 作用 | 备注 |
---|
0 | 重置/正常 | 关闭所有属性。 |
1 | 粗体或增加强度 | |
2 | 弱化(降低强度) | 未广泛支持。 |
3 | 斜体 | 未广泛支持。有时视为反相显示。 |
4 | 下划线 | |
5 | 缓慢闪烁 | 低于每分钟150次。 |
6 | 快速闪烁 | MS-DOS ANSI.SYS;每分钟150以上;未广泛支持。 |
7 | 反显 | 前景色与背景色交换。 |
8 | 隐藏 | 未广泛支持。 |
9 | 划除 | 字符清晰,但标记为删除。未广泛支持。 |
10 | 主要(默认)字体 | |
11–19 | 替代字体 | 选择替代字体。 |
20 | 尖角体 | 几乎无支持。 |
21 | 关闭粗体或双下划线 | 关闭粗体未广泛支持;双下划线几乎无支持。 |
22 | 正常颜色或强度 | 不强不弱。 |
23 | 非斜体、非尖角体 | |
24 | 关闭下划线 | 去掉单双下划线。 |
25 | 关闭闪烁 | |
27 | 关闭反显 | |
28 | 关闭隐藏 | |
29 | 关闭划除 | |
30–37 | 设置前景色 | 参见下面的颜色表。 |
38 | 设置前景色 | 下一个参数是5;n或2;r;g;b,见下。 |
39 | 默认前景色 | 由具体实现定义(按照标准)。 |
40–47 | 设置背景色 | 参见下面的颜色表。 |
48 | 设置背景色 | 下一个参数是5;n或2;r;g;b,见下。 |
49 | 默认背景色 | 由具体实现定义(按照标准)。 |
51 | Framed | |
52 | Encircled | |
53 | 上划线 | |
54 | Not framed or encircled | |
55 | 关闭上划线 | |
60 | 表意文字下划线或右边线 | 几乎无支持。 |
61 | 表意文字双下划线或双右边线 |
62 | 表意文字上划线或左边线 |
63 | 表意文字双上划线或双左边线 |
64 | 表意文字着重标志 |
65 | 表意文字属性关闭 | 重置60–64的所有效果。 |
90–97 | 设置明亮的前景色 | aixterm(非标准)。 |
100–107 | 设置明亮的背景色 | aixterm(非标准)。 |
背景色和前景色代码见下表:
30 -- 黑色前景 40 -- 黑色背景
31 -- 红色前景 41 -- 红色背景
32 -- 绿色前景 42 -- 绿色背景
33 -- 黄色前景 43 -- 黄色背景
34 -- 蓝色前景 44 -- 蓝色背景
35 -- 紫色前景 45 -- 紫色背景
36 -- 青色前景 46 -- 青色背景
37 -- 白色前景 47 -- 白色背景
@echo off
echo Hello, [1;1;31;47mANSI[0;1m高亮[34m彩色[1;0m粗体[0m输出
例子:
Windows 10下
@echo off
::CMD 里显示彩色文字
cls
echo.
echo
echo [1;36m 登鹳雀楼
echo.
echo.
echo [1;35m 白日依山尽,[33m黄河入海流。
echo.
echo [1;32m 欲穷千里目,[31m更上一层楼。
echo.
echo.
echo.
echo.
echo [1;33m 下江陵
echo.
echo.
echo [1;32m 朝辞白帝彩云间,[36m千里江陵一日还。
echo.
echo [1;31m 两岸猿声啼不住,[35m轻舟已过万重山。
echo.
echo.
echo 继续下页
pause>nul
cls
echo.
echo.
echo.
echo [1;31m 关山月
echo.
echo.
echo [1;32m 明月出天山,苍茫云海间。
echo.
echo [1;33m 长风几万里,吹度玉门关。
echo.
echo [1;35m 汉下白登道,胡窥青海湾。
echo.
echo [1;36m 由来征战地,不见有人还。
echo.
echo [1;37m 戍客望边色,思归多苦颜。
echo.
echo [1;31m 高楼当此夜,叹息未应闲。
echo.
echo.
pause>nul
exit /b
Windows XP及以下
@echo off
::CMD 里显示彩色文字
chcp 437>nul&&graftabl 936>nul
if not exist CONFIG.NT copy %WinDir%\System32\CONFIG.NT CONFIG.NT
@cls
echo DEVICE=%WinDir%\System32\ANSI.SYS /x >%WinDir%\System32\CONFIG.NT
@echo.
command /c echo
command /c echo [1;36m 登鹳雀楼
@echo.
@echo.
command /c echo [1;35m 白日依山尽,[33m黄河入海流。
@echo.
command /c echo [1;32m 欲穷千里目,[31m更上一层楼。
@echo.
@echo.
@echo.
@echo.
command /c echo [1;33m 下江陵
@echo.
@echo.
command /c echo [1;32m 朝辞白帝彩云间,[36m千里江陵一日还。
@echo.
command /c echo [1;31m 两岸猿声啼不住,[35m轻舟已过万重山。
@echo.
@echo.
@echo 继续下页
pause>nul
@cls
@echo.
@echo.
@echo.
command /c echo [1;31m 关山月
@echo.
@echo.
command /c echo [1;32m 明月出天山,苍茫云海间。
@echo.
command /c echo [1;33m 长风几万里,吹度玉门关。
@echo.
command /c echo [1;35m 汉下白登道,胡窥青海湾。
@echo.
command /c echo [1;36m 由来征战地,不见有人还。
@echo.
command /c echo [1;37m 戍客望边色,思归多苦颜。
@echo.
command /c echo [1;31m 高楼当此夜,叹息未应闲。
@echo.
@echo.
pause>nul
copy CONFIG.NT %WinDir%\System32\CONFIG.NT
copy CONFIG.NT %WinDir%\System32\CONFIG.NT
del CONFIG.NT
exit /b
运行效果: