Windows cmd(DOS)命令窗口中echo命令ANSI转义显示彩色字或背景
2019独角兽企业重金招聘Python工程师标准>>>
前言
3个星期的周末了解LINUX下、WINDOWS下的ANSI颜色转义控制,LINUX下根据网上的搜索结果一下就成功了,但WINDOWS的CMD(dos)窗口中始终都没有成功,一直不甘心,今天再来试试,终于成功。关键点在于ESC的输入问题在以前看过的文章中都没有提及。
发现根本不需要加载ANSI.SYS驱动,WINDOWS应该是默认就加载了。
先看一下最终效果:
命令
注意以下命令中^[这2个字符是表示ASCII的一个字符27(即ESC), 其输入方法要用特殊的方式(见后述),所以下面的命令复制、粘贴后执行是看不到效果的。
还要注意的是^[后面还有一个正常的[。
C:\>cmd /cecho ^[[1;31m111],^[[32m222^[[33;44m333^[[34m4444^[[35m555^[[0m
C:\>cmd /cecho ^[[1;31m dfsaafds],^[[32mNO222222222^[[33;34m55555^[[34m4444^[[0m
C:\>cmd /cecho ^[[1;35m dfsaafds],^[[33madsfsk^[[42;35m55555^[[0m
C:\>cmd /cecho ^[[1;35m dfsaafds],^[[33madsfsk^[[48;35m55555
不要前面的cmd /c也是可以的
echo ^[[31m111;^[[32m222;^[[33m333^[[41;34m444;^[[42;35m555^[[43;36m666^[[0m
ESC(^[) 0x1B, \033字符的输入方法
^[是ANSI的ESC一个字符,并不是我们看到的键盘上左上角那个'ESC'按键。其ASCII码值10进制是27, 八进制是33(一般写为\033),16进制1b(一般写为\x1b)。 ,其输入方法有以下几种:
ESC字符输入方法一:
在cmd窗口中先按住ALT键,然后按一下小键盘(有些笔记本没有这个键盘)上的数字键2,7,然后放开ALT按键(一定要放开,否则不会显示)。
ESC字符输入方法二:
在cmd窗口中先按住CTRL键,再按[键
ESC字符输入方法三,NPP(NotePad++):
使用查找、替换法
替换后:
color命令
补充一个color命令,这是改变CMD窗口的整个背景及前景,和ECHO的颜色控制不是一个范畴的。
color帮助信息
C:\Windows\system32>color /?
设置默认的控制台前景和背景颜色。
COLOR [attr]
attr 指定控制台输出的颜色属性。
颜色属性由两个十六进制数字指定 -- 第一个
对应于背景,第二个对应于前景。每个数字
可以为以下任何值:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
如果没有给定任何参数,此命令会将颜色还原到 CMD.EXE 启动时
的颜色。这个值来自当前控制台
color命令的几个效果
运行环境
1、Windows 2016
2、Windows10
参考
批处理CMD显示彩色文字 https://blog.csdn.net/zhoujiaxq/article/details/22785803
- ANSI颜色使用研究https://blog.csdn.net/jennyvenus/article/details/18168
附LINUX下的echo彩色字符显示
ESC使用\033
支持ASNI颜色转义控制的终端软件
PuTTY
最简洁、最有名的吧 ,现在发现的缺点2个:一、是不能暂停滚屏,二、查找、高亮
AT(AbsoluteTelnet)
没有上述PuTYY的两个缺点 ,
但有一个问题:退格键输入回显不删除字符
MobaXterm
https://mobaxterm.mobatek.net/download-home-edition.html
没有putty和AT的缺点,但感觉界面太复杂
LOG到文件功能
log到文件三者都有,但感觉AT每次要手支启动不是很方便, PuTYY,MobaXterm 只需设置一次
LUA控制台打印
--lua cmd-ansi-color
print("lua v".._VERSION);
io.write("ANSY color control\n");
local cmdhead = "echo ";
if 1 then
for i=0, 7 dofor j=0, 7 dolocal parm = string.format("\x1b[4%d;3%dm --3%d/4%d--\x1b[0m", i, j, i, j)local cmd = cmdhead .. parmio.write(string.format("%s :", string.gsub( cmd,"\x1b","ESC" )));os.execute(cmd)end
end
endfor i=0, 7 dofor j=0, 7 dolocal parm = string.format("\x1b[4%d;3%dm --samshou3%d/4%d--\x1b[0m", i, j, i, j)local cmd = cmdhead .. parm--io.write(string.format("%s :", string.gsub( cmd,"\x1b","ESC" )));io.write(parm);endio.write("\n");
end
==结果==
>lua cmd-ansi-color.lua
Lua 5.3
ANSY color control
echo ESC[40;30m --40/30--ESC[0m : --40/30--
echo ESC[40;31m --40/31--ESC[0m : --40/31--
echo ESC[40;32m --40/32--ESC[0m : --40/32--
echo ESC[40;33m --40/33--ESC[0m : --40/33--
echo ESC[40;34m --40/34--ESC[0m : --40/34--
echo ESC[40;35m --40/35--ESC[0m : --40/35--
echo ESC[40;36m --40/36--ESC[0m : --40/36--
echo ESC[40;37m --40/37--ESC[0m : --40/37--
echo ESC[41;30m --41/30--ESC[0m : --41/30--
echo ESC[41;31m --41/31--ESC[0m : --41/31--
echo ESC[41;32m --41/32--ESC[0m : --41/32--
echo ESC[41;33m --41/33--ESC[0m : --41/33--
echo ESC[41;34m --41/34--ESC[0m : --41/34--
echo ESC[41;35m --41/35--ESC[0m : --41/35--
echo ESC[41;36m --41/36--ESC[0m : --41/36--
echo ESC[41;37m --41/37--ESC[0m : --41/37--
echo ESC[42;30m --42/30--ESC[0m : --42/30--
echo ESC[42;31m --42/31--ESC[0m : --42/31--
echo ESC[42;32m --42/32--ESC[0m : --42/32--
echo ESC[42;33m --42/33--ESC[0m : --42/33--
echo ESC[42;34m --42/34--ESC[0m : --42/34--
echo ESC[42;35m --42/35--ESC[0m : --42/35--
echo ESC[42;36m --42/36--ESC[0m : --42/36--
echo ESC[42;37m --42/37--ESC[0m : --42/37--
echo ESC[43;30m --43/30--ESC[0m : --43/30--
echo ESC[43;31m --43/31--ESC[0m : --43/31--
echo ESC[43;32m --43/32--ESC[0m : --43/32--
echo ESC[43;33m --43/33--ESC[0m : --43/33--
echo ESC[43;34m --43/34--ESC[0m : --43/34--
echo ESC[43;35m --43/35--ESC[0m : --43/35--
echo ESC[43;36m --43/36--ESC[0m : --43/36--
echo ESC[43;37m --43/37--ESC[0m : --43/37--
echo ESC[44;30m --44/30--ESC[0m : --44/30--
echo ESC[44;31m --44/31--ESC[0m : --44/31--
echo ESC[44;32m --44/32--ESC[0m : --44/32--
echo ESC[44;33m --44/33--ESC[0m : --44/33--
echo ESC[44;34m --44/34--ESC[0m : --44/34--
echo ESC[44;35m --44/35--ESC[0m : --44/35--
echo ESC[44;36m --44/36--ESC[0m : --44/36--
echo ESC[44;37m --44/37--ESC[0m : --44/37--
echo ESC[45;30m --45/30--ESC[0m : --45/30--
echo ESC[45;31m --45/31--ESC[0m : --45/31--
echo ESC[45;32m --45/32--ESC[0m : --45/32--
echo ESC[45;33m --45/33--ESC[0m : --45/33--
echo ESC[45;34m --45/34--ESC[0m : --45/34--
echo ESC[45;35m --45/35--ESC[0m : --45/35--
echo ESC[45;36m --45/36--ESC[0m : --45/36--
echo ESC[45;37m --45/37--ESC[0m : --45/37--
echo ESC[46;30m --46/30--ESC[0m : --46/30--
echo ESC[46;31m --46/31--ESC[0m : --46/31--
echo ESC[46;32m --46/32--ESC[0m : --46/32--
echo ESC[46;33m --46/33--ESC[0m : --46/33--
echo ESC[46;34m --46/34--ESC[0m : --46/34--
echo ESC[46;35m --46/35--ESC[0m : --46/35--
echo ESC[46;36m --46/36--ESC[0m : --46/36--
echo ESC[46;37m --46/37--ESC[0m : --46/37--
echo ESC[47;30m --47/30--ESC[0m : --47/30--
echo ESC[47;31m --47/31--ESC[0m : --47/31--
echo ESC[47;32m --47/32--ESC[0m : --47/32--
echo ESC[47;33m --47/33--ESC[0m : --47/33--
echo ESC[47;34m --47/34--ESC[0m : --47/34--
echo ESC[47;35m --47/35--ESC[0m : --47/35--
echo ESC[47;36m --47/36--ESC[0m : --47/36--
echo ESC[47;37m --47/37--ESC[0m : --47/37--
截屏:
后记
写这条BLOG3小时多点,太费时了,不容易啊。
转载于:https://my.oschina.net/SamXIAO/blog/2959478
Windows cmd(DOS)命令窗口中echo命令ANSI转义显示彩色字或背景相关推荐
- 在windows的资源管理器窗口中,左边显示的内容是什么
在windows的资源管理器窗口中,其左边窗口显示的内容是"系统的文件夹树".在"资源管理器"窗口中,左边的文件夹窗口以树形目录的形式显示文件夹,右边的文件夹内 ...
- linux+echo+权限不够,解决linux echo命令以及linux echo命令提示权限不够的方法
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法.下面通过本文给大家介绍linux echo命令以及linux ...
- linux下执行php命令echo不输出,linux echo命令以及linux echo命令提示权限不够的方法...
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法.下面通过本文给大家介绍linux echo命令以及linux ...
- Windows CMD DOS命令
文章目录 DOS命令基础 进入cmd Windows下几种常用快捷键 基本命令 调整字体 操作文件 操作目录(文件夹) 查找命令 复制和移动 操作进程 关机和重启 其他命令 DOS命令基础 进入cmd ...
- Windows CMD/DOS命令,批处理
文章目录 0. 写在前面 1. 常用的CMD命令 1.1 设置变量命令set 1.2 自定义DOS窗口color.title 1.3 网络连接相关 1.3.1 ping 命令 1.3.2 telnet ...
- windows CMD窗口换个标题 title命令
命令格式 D:\>title /? 设置命令提示窗口的窗口标题.TITLE [string]string 指定命令提示窗口的标题. 命令用法 #将窗口标题设置为abc title abc 设置窗 ...
- 如何使scrapy爬取信息不打印在命令窗口中
通常,我们使用这条命令运行自己的scrapy爬虫: scrapy crawl spider_name 但是,由这条命令启动的爬虫,会将所有爬虫运行中的debug信息及抓取到的信息打印在运行窗口中.很乱 ...
- Windows ❀ CMD中使用批量Ping网段命令教程
CMD中使用批量Ping网段命令教程 语法介绍: for /L %variable in (start,step,end) do command [command-parameters] variab ...
- 关于在phpStudy环境下,windows cmd中 php不是内部命令问题
首先查看system32是否加入系统变量 其次要把当前运行的php版本的路径加入到系统变量中去,path中, 一定要是这个样子的: D:\phpStudy\php\php-5.6.27-nts 不然没 ...
最新文章
- 图像处理之添加高斯与泊松噪声
- Android 圆角Button
- Response_案例1_重定向_特点
- AXI_02 AXI4总线简介(协议、时序)
- 退货表mysql_openant电商-退货 - 数据库设计 - 数据库表结构 - 果创云
- ThinkPHP讲解(一)框架基础
- linux以下哪个属于块设备,1222.在大多数Linux发行版本中,以下哪个属于块设备( )...
- 索引sql server_SQL Server索引–系列介绍
- 人工智能重点领域有哪些呢?
- BP神经网络——matlab具体解决实际问题
- 面试常问:BIO,NIO,AIO
- 2020年下半年软件设计师上午真题及答案解析(个人见解+网络解答+持续更新)
- (翻译)禁用按钮不应变灰的原因
- JDY-24M 超级 BLE 蓝牙模块——理解与实践
- bind 完成正确安装
- 浩哥的Linux学习笔记之touch命令
- 威联通架设php网站_初次体验架设PHP网站
- FlexRay通信机制
- 二、谷歌阻止苹果,谁来阻止谷歌
- 利用bazel构建tsan相关程序