首页  编辑  

批处理中显示颜色:ANSI转义

Tags: /计算机文档/脚本,批处理/   Date Created:
ANSI彩色显示
详细ANSI代码,请参考 ANSI转义序列 - 维基百科,自由的百科全书 (wikipedia.org)
批处理中要实现彩色显示,只要输出文本前用ESC[...m 转义即可。[ 符号前面有个非打印字符ESC,要输入ESC字符,按住Alt键,然后按数字小键盘,2、7,然后松开Alt键即可:
ESC语法格式:
[代码;代码;代码m
[表示转义开始,代码可以有多个,用分号 ; 分隔,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;n2;r;g;b,见下。
39默认前景色由具体实现定义(按照标准)。
40–47设置背景色参见下面的颜色表。
48设置背景色下一个参数是5;n2;r;g;b,见下。
49默认背景色由具体实现定义(按照标准)。
51Framed
52Encircled
53上划线
54Not framed or encircled
55关闭上划线
60表意文字下划线或右边线几乎无支持。
61表意文字双下划线或双右边线
62表意文字上划线或左边线
63表意文字双上划线或双左边线
64表意文字着重标志
65表意文字属性关闭重置6064的所有效果。
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, ANSI高亮彩色粗体输出


例子:
Windows 10下
@echo off
::CMD 里显示彩色文字
cls
echo.
echo 
echo                                  登鹳雀楼
echo.
echo.
echo                           白日依山尽,黄河入海流。
echo.
echo                           欲穷千里目,更上一层楼。
echo.
echo.
echo.
echo.
echo                                    下江陵
echo.
echo.
echo                        朝辞白帝彩云间,千里江陵一日还。
echo.
echo                        两岸猿声啼不住,轻舟已过万重山。
echo.
echo.
echo  继续下页
pause>nul
cls
echo.
echo.
echo.
echo                                  关山月
echo.
echo.
echo                          明月出天山,苍茫云海间。
echo.
echo                          长风几万里,吹度玉门关。
echo.
echo                          汉下白登道,胡窥青海湾。
echo.
echo                          由来征战地,不见有人还。
echo.
echo                          戍客望边色,思归多苦颜。
echo.
echo                          高楼当此夜,叹息未应闲。
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                                  登鹳雀楼
@echo.
@echo.
command /c echo                           白日依山尽,黄河入海流
@echo.
command /c echo                           欲穷千里目,更上一层楼
@echo.
@echo.
@echo.
@echo.
command /c echo                                    下江陵
@echo.
@echo.
command /c echo                        朝辞白帝彩云间,千里江陵一日还
@echo.
command /c echo                        两岸猿声啼不住,轻舟已过万重山
@echo.
@echo.
@echo  继续下页
pause>nul
@cls
@echo.
@echo.
@echo.
command /c echo                                  关山月
@echo.
@echo.
command /c echo                          明月出天山,苍茫云海间
@echo.
command /c echo                          长风几万里,吹度玉门关
@echo.
command /c echo                          汉下白登道,胡窥青海湾
@echo.
command /c echo                          由来征战地,不见有人还
@echo.
command /c echo                          戍客望边色,思归多苦颜
@echo.
command /c echo                          高楼当此夜,叹息未应闲
@echo.
@echo.
pause>nul
copy  CONFIG.NT  %WinDir%\System32\CONFIG.NT
copy  CONFIG.NT  %WinDir%\System32\CONFIG.NT
del  CONFIG.NT
exit /b
运行效果: