首页 / 知识
关于ruby:如何在Windows命令提示符下更改文本颜色
2023-04-16 06:13:00

How can I change the text color in the windows command prompt我有一个命令行程序,它将日志记录输出到屏幕上。 我希望错误行显示为红色。 我可以输出一些特殊的字符代码来将文本颜色切换为红色,然后再切换回白色吗? 我正在使用ruby,但我想这在任何其他语言中都一样。 就像是:
在Windows上,您可以通过以下三种方式轻松完成此操作:
现在您可以使用名为
您也可以像这样扩展String以获取更多颜色:
或者,如果您可以安装gems:
在您的程序中:
有关更多信息和可能的用法,请参阅文档以了解术语/杂色。 您需要访问[Win32控制台API](http://msdn.microsoft.com/zh-cn/library/ms682073(VS.85%29.aspx)。不幸的是,我不知道您会怎么做在Ruby中,我将使用Win32 :: Console模块。Windows控制台不响应ANSI转义码。 根据artur02提到的有关为Ruby输出着色的文章,您需要安装并加载win32console gem。
您可以在此处阅读精美的插图文章: 我认为设置控制台文本颜色是特定于语言的。这是来自MSDN的C#示例:
Console.ForegroundColor是用于设置文本颜色的属性。 我编写了一个跨平台的小程序,可以处理在MRI和JRuby下在Windows或POSIX系统上无缝运行的问题。 它没有依赖性,并且在POSIX系统上使用ANSI代码,在Windows上使用FFI(JRuby)或Fiddler(MRI)。 要使用它,只需:
ColorConsole提供了使用Console.write和Console.puts函数以不同颜色输出文本行的方法。
请访问项目主页,网址为https://github.com/agardiner/color-console以获取更多详细信息。
颜色定义如下:
例如,要将背景更改为蓝色,将前景更改为灰色,请输入:
在ANSI转义码上:
谢谢微软:-( 您可以使用ANSI转义序列,但是在现代Windows版本下,这将无法实现您想要的功能。维基百科上有一篇非常翔实的文章: http://en.wikipedia.org/wiki/ANSI_escape_code 因此,您最初的问题的答案几乎肯定是"否"。但是,您可以更改前景色而无需编写转义序列,例如,通过调用Win32 API函数。我不知道该如何在Ruby中执行此类操作,但似乎有人设法做到了: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/241925 我想您想将4用于深红色,将12用于明亮的红色,将7用于恢复默认颜色。 希望这可以帮助! 多年来,我一直在使用一种称为裸尾(google it)的免费软件Windows tail程序,该程序可以让您执行Windows应用版本的unix tail命令。它使您可以根据定义的任何关键字为行着色。作为解决方案的好处是,它不受特定语言或设置等的限制,您只需定义配色方案及其类似驴金刚。在我个人的十大免费软件助手中! 最终,您需要调用SetConsoleTextAttribute。您可以从GetStdHandle获取控制台屏幕缓冲区句柄。 用于输出到命令行的标准C / C ++规范没有指定任何更改控制台窗口颜色的功能。就是说,Win32中有许多功能可以执行此操作。
更改Win32控制台颜色的最简单方法是通过iostream.h中的系统命令。此函数调用DOS命令。要更改颜色,我们将使用它来调用color命令。例如, DOS颜色 该命令可用的颜色是16种DOS颜色,每种颜色都用十六进制数字表示。第一个是背景,第二个是前景。
只需一点点颜色,即可使控制台程序在视觉上更令人愉悦。但是,"颜色"命令将更改整个控制台的颜色。要控制单个单元,我们需要使用windows.h中的函数。
为此,您需要使用 http://msdn.microsoft.com/en-us/library/ms686047.aspx 许多旧的ANSI颜色代码都可以使用。红色前景的代码类似于Escape- [31m。转义符是字符27,根据您的转义方案,它是" \ 033 [31m"或" \ x1B [31m""。 [39m是返回默认颜色的代码。 也可以一次指定多个代码以同时设置前景色和背景色。 您可能必须加载ANSI.sys,请参阅此页面。 您需要ANSI转义码。
您可以使用简单的C#程序来更改颜色,http://powerof2games.com/node/31介绍了如何包装控制台输出以实现效果。 据我所知,使用命令行是不可能的,它只是一种颜色... |
最新内容
相关内容
linux命令行大全如何?
linux命令行大全如何?,地址,命令,基础,工作,管理,单位,数据,标准,目录,文件,linux必学的60个命令1、安装和登录命令:login、shutdown、halt、relinux命令行打开浏览?
linux命令行打开浏览?,系统,网络,网址,工具,密码,首页,服务,网站,数据,地址,linux怎么打开命令行窗口在Linux系统中,打开命令行窗口需要使用终linux开启命令行命令?
linux开启命令行命令?,系统,单位,工具,电脑,首页,终端,情况,密码,权威,命令,linux系统的cmd在哪里启动啊?1、打开方法:开始-所有程序-附件 或linux命令行模式登录?
linux命令行模式登录?,系统,密码,信息,状态,情况,终端,环境,管理,电脑,位置,linux,按了ctrl+alt+F1,进入了类似纯命令行的界面,让输入login信linux链接网络命令行?
linux链接网络命令行?,地址,系统,网络,工作,软件,工具,信息,密码,服务,标准,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux退出的命令行?
linux退出的命令行?,档案,状态,平台,系统,命令,名字,信息,编辑,模式,文件,linux退出vi编辑命令1、先按ESC进入Command模式,然后输入“:wq”,回车linux命令行播放声音?
linux命令行播放声音?,系统,设备,手机,电脑,软件,量化,数据,管理,首页,服务,linux声音输出设置1、首先在任务栏中点击控制中心图标,进入控制中获取linux时间命令行?
获取linux时间命令行?,时间,系统,信息,命令,工具,工作,代码,数据,服务,环境,Linux系统里的expect里面怎么打印当前时间?1、有时候需要使用今天linux命令行切换规则?
linux命令行切换规则?,密码,系统,软件,工具,工作,名称,目录,命令,界面,图形界面,linux中如何关闭图形界面切换到命令行界面?命令行→图形 starlinuxc关机命令行?
linuxc关机命令行?,系统,状态,工作,命令,管理,用户,方式,终端,级别,参数,linux系统重启命令是什么,关机命令是什么?1、linux系统重启命令是什linux命令行创建组?
linux命令行创建组?,系统,代码,密码,软件,用户组,用户,命令,选项,用户名,文件夹,linux命令界面中怎么新建用户组1、打开xshell软件,远程访问您linux命令行模式使用?
linux命令行模式使用?,工作,地址,目录,信息,名称,系统,管理,命令,文件,标准,linux常用命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出