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
运行效果:

另外一种方法:
@echo off
SETLOCAL EnableDelayedExpansion
SET "E=0x1B["
ECHO.
CALL :ColorLine " %E%32m((,.,/((((((((((((((((((((/, */%E%97m"
CALL :ColorLine " %E%32m,/*,..*(((((((((((((((((((((((((((((((((,%E%97m"
CALL :ColorLine " %E%32m,*/((((((((((((((((((/, %E%92m.*//((//**,%E%32m .*((((((*%E%97m"
CALL :ColorLine " %E%32m((((((((((((((((* %E%94m*****%E%32m,,,/########## %E%32m.(* ,((((((%E%97m"
CALL :ColorLine " %E%32m(((((((((((/* %E%94m******************%E%32m/####### %E%32m.(. ((((((%E%97m"
CALL :ColorLine " %E%32m((((((.%E%92m.%E%94m******************%E%97m/@@@@@/%E%94m***%E%92m/######%E%32m /((((((%E%97m"
CALL :ColorLine " %E%32m,,.%E%92m.%E%94m**********************%E%97m@@@@@@@@@@(%E%94m***%E%92m,####%E%32m ../(((((%E%97m"
CALL :ColorLine " %E%32m, ,%E%92m%E%94m**********************%E%97m#@@@@@#@@@@%E%94m*********%E%92m##%E%32m((/ /((((%E%97m"
CALL :ColorLine " %E%32m..((%E%92m(##########%E%94m*********%E%97m/#@@@@@@@@@/%E%94m*************%E%32m,,..((((%E%97m"
CALL :ColorLine " %E%32m.((%E%92m(################(/%E%94m******%E%97m/@@@@@#%E%94m****************%E%32m.. /((%E%97m"
CALL :ColorLine " %E%32m.(%E%92m(########################(/%E%94m************************%E%32m..*(%E%97m"
CALL :ColorLine " %E%32m.(%E%92m(#############################(/%E%94m********************%E%32m.,(%E%97m"
CALL :ColorLine " %E%32m.(%E%92m(##################################(/%E%94m***************%E%32m..(%E%97m"
CALL :ColorLine " %E%32m.(%E%92m(######################################(%E%94m************%E%32m..(%E%97m"
CALL :ColorLine " %E%32m.(%E%92m(######(,.***.,(###################(..***(/%E%94m*********%E%32m..(%E%97m"
CALL :ColorLine " %E%32m.(%E%92m(######*(#####((##################((######/(%E%94m********%E%32m..(%E%97m"
CALL :ColorLine " %E%32m.(%E%92m(##################(/**********(################(%E%94m**%E%32m...(%E%97m"
CALL :ColorLine " %E%32m.((%E%92m(####################/*******(###################%E%32m.((((%E%97m"
CALL :ColorLine " %E%32m.((((%E%92m(############################################/%E%32m /((%E%97m"
CALL :ColorLine " %E%32m..((((%E%92m(#########################################(%E%32m..(((((.%E%97m"
CALL :ColorLine " %E%32m....((((%E%92m(#####################################(%E%32m .((((((.%E%97m"
CALL :ColorLine " %E%32m......((((%E%92m(#################################(%E%32m .(((((((.%E%97m"
CALL :ColorLine " %E%32m(((((((((. ,%E%92m(############################(%E%32m../(((((((((.%E%97m"
CALL :ColorLine " %E%32m(((((((((/, %E%92m,####################(%E%32m/..((((((((((.%E%97m"
CALL :ColorLine " %E%32m(((((((((/,. %E%92m,*//////*,.%E%32m ./(((((((((((.%E%97m"
CALL :ColorLine " %E%32m(((((((((((((((((((((((((((/%E%97m"
ECHO.
ECHO.
:ColorLine
SET "CurrentLine=%~1"
FOR /F "delims=" %%A IN ('FORFILES.EXE /P %~dp0 /M %~nx0 /C "CMD /C ECHO.!CurrentLine!"') DO ECHO.%%A
EXIT /B
运行效果: