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

参考

  1. 批处理CMD显示彩色文字  https://blog.csdn.net/zhoujiaxq/article/details/22785803

  2. 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转义显示彩色字或背景相关推荐

  1. 在windows的资源管理器窗口中,左边显示的内容是什么

    在windows的资源管理器窗口中,其左边窗口显示的内容是"系统的文件夹树".在"资源管理器"窗口中,左边的文件夹窗口以树形目录的形式显示文件夹,右边的文件夹内 ...

  2. linux+echo+权限不够,解决linux echo命令以及linux echo命令提示权限不够的方法

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法.下面通过本文给大家介绍linux echo命令以及linux ...

  3. linux下执行php命令echo不输出,linux echo命令以及linux echo命令提示权限不够的方法...

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法.下面通过本文给大家介绍linux echo命令以及linux ...

  4. Windows CMD DOS命令

    文章目录 DOS命令基础 进入cmd Windows下几种常用快捷键 基本命令 调整字体 操作文件 操作目录(文件夹) 查找命令 复制和移动 操作进程 关机和重启 其他命令 DOS命令基础 进入cmd ...

  5. Windows CMD/DOS命令,批处理

    文章目录 0. 写在前面 1. 常用的CMD命令 1.1 设置变量命令set 1.2 自定义DOS窗口color.title 1.3 网络连接相关 1.3.1 ping 命令 1.3.2 telnet ...

  6. windows CMD窗口换个标题 title命令

    命令格式 D:\>title /? 设置命令提示窗口的窗口标题.TITLE [string]string 指定命令提示窗口的标题. 命令用法 #将窗口标题设置为abc title abc 设置窗 ...

  7. 如何使scrapy爬取信息不打印在命令窗口中

    通常,我们使用这条命令运行自己的scrapy爬虫: scrapy crawl spider_name 但是,由这条命令启动的爬虫,会将所有爬虫运行中的debug信息及抓取到的信息打印在运行窗口中.很乱 ...

  8. Windows ❀ CMD中使用批量Ping网段命令教程

    CMD中使用批量Ping网段命令教程 语法介绍: for /L %variable in (start,step,end) do command [command-parameters] variab ...

  9. 关于在phpStudy环境下,windows cmd中 php不是内部命令问题

    首先查看system32是否加入系统变量 其次要把当前运行的php版本的路径加入到系统变量中去,path中, 一定要是这个样子的: D:\phpStudy\php\php-5.6.27-nts 不然没 ...

最新文章

  1. 图像处理之添加高斯与泊松噪声
  2. Android 圆角Button
  3. Response_案例1_重定向_特点
  4. AXI_02 AXI4总线简介(协议、时序)
  5. 退货表mysql_openant电商-退货 - 数据库设计 - 数据库表结构 - 果创云
  6. ThinkPHP讲解(一)框架基础
  7. linux以下哪个属于块设备,1222.在大多数Linux发行版本中,以下哪个属于块设备( )...
  8. 索引sql server_SQL Server索引–系列介绍
  9. 人工智能重点领域有哪些呢?
  10. BP神经网络——matlab具体解决实际问题
  11. 面试常问:BIO,NIO,AIO
  12. 2020年下半年软件设计师上午真题及答案解析(个人见解+网络解答+持续更新)
  13. (翻译)禁用按钮不应变灰的原因
  14. JDY-24M 超级 BLE 蓝牙模块——理解与实践
  15. bind 完成正确安装
  16. 浩哥的Linux学习笔记之touch命令
  17. 威联通架设php网站_初次体验架设PHP网站
  18. FlexRay通信机制
  19. 二、谷歌阻止苹果,谁来阻止谷歌
  20. 利用bazel构建tsan相关程序

热门文章

  1. cocos2dx 3.3 final 自定义事件 ---- EventListenerCustom
  2. 02_NoSQL数据库之Redis数据库:string类型和hash类型
  3. ewebeditor 上传大内容文本注意点
  4. 数组 = 容器
  5. 怎么快速把语音转成文字
  6. WPF绘制自定义窗口
  7. 【疯狂积累CSS】2:利用@media screen实现网页布局的自适应
  8. HTML 常用标签全称
  9. web性能优化——关键渲染路径(上)
  10. 理解VMware Team中的虚拟网络