我最近发现了一个帖子给出了一个解决方案,让stderr的文本输出为 Linux(bash)的不同颜色

他们创建了以下bash脚本脚本

#!/bin/bash
{ $* 2>&1>&3|sed 's,.*,\x1B[33m&\x1B[0m,'>&2;} 3>&1

这会导致输出在来自stderr时打印黄色文本. stdout仍然打印相同的颜色.

该脚本保存在名为color的$PATH目录中.这允许我使用make或scons运行脚本,并且它将以黄色显示来自stderr的所有文本. (可以通过将33米改为31米来使文字变红)

color make cpu=x64

这对于在编译时发现错误非常有用.

是否有类似的脚本可用于Windows cmd shell?

注意:如果有帮助,我已经在我的Windows计算机上安装了sed.

至于Windows’cmd.exe下对ANSI转义码的支持,请参阅 ansicon.将转发逻辑转换为cmd.exe语法后,我准备了以下color.bat文件:
@Echo Off
(((%* 1>&3) 2>&1) | "c:\Program Files (x86)\GnuWin32\bin\sed.exe" "s," 1>&2) 3>&1

不幸的是,流混合在一起(在某些行上,stdout和stderr中的字符在一行中混合在一起).也许这种行为取决于所使用的sed.exe版本,所以试一试.

如果这不起作用,请考虑使用最低cygwin安装.我测试了你的color.sh脚本,我能够启动一个.bat文件,它可以正常工作而不会混合流.我使用的语法是:

./color.sh cmd /c test.bat

在stderr的Windows上更改文本输出颜色的更多相关文章

  1. iOS:如何以编程方式在应用程序中从私钥和x509certificate创建PKCS12(P12)密钥库?

    这个问题显然很相似,但没有任何答案:Programmaticallycreateax509certificateforiPhonewithoutusingOpenSSL在我们的应用程序(服务器,客户端)中,我们正在实现客户端身份验证(基于X509Certificate的SSL).我们已经有办法生成密钥对,创建PKCS10证书签名请求,由自签名CA签名并创建X509Certificate,然后发回.

  2. 如何在我的Android中运行BASH脚本?

    我的BASH脚本在Fedora/CentOS中工作.但是我正在测试一个Androideeepad变压器.我有终端访问,我写了一个小测试脚本.但它不工作,我该如何解决?我究竟做错了什么?我看到,虽然它被指定#!/bin/bash错误由sh发布–可能会做错了.UPD

  3. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  4. Windows脚本自动更新用exec替换当前可执行文件?

    我正在尝试在PerlWindows中构建一个快速自动更新程序.我注意到当我调用cpanp来安装软件包的更新时,由于脚本当前正在运行,因此无法安装新版本的脚本.我现在用CORE::system()调用cpanp.如果我用exec()调用cpanp会释放可替换的可执行文件吗?或者,即使执行已完全转移到cpanp,Windows是否仍保持捆绑?

  5. 什么是Windows最好的免费脚本化SFTP客户端?

    我看过WinSCP和FileZilla.WinSCP看起来相当buggy,FileZilla似乎不是很易编写脚本.有什么建议?基本上我想要做的是:从计划任务,登录到远程服务器,拉过任何文件,然后从远程服务器中删除它们.您可以使用puttypscp附带的scp客户端.您可以在命令行中使用pscp,如linux命令行中的scp.

  6. windows – 在Perl脚本中播放声音

    我正在尝试将声音添加到Perl脚本以提醒用户该事务处于正常状态.我希望尽可能保持便携,因为脚本在Windows和Linux工作站上运行.我可以对于Windows.但我不确定如何在Linux上调用泛型声音.到目前为止,我已经想到了但我不确定我是否可以指望这条路可用.那么,有三个问题:>有没有更好的方法来调用Gnome中的默认声音>这条路是非常普遍的>播放声音后,paplay需要一段时间才能退出,是否有更好的方式来呼叫它?

  7. stdout – 使用Windows Script Host捕获WshShell.Exec的输出

    我尝试使用“WshShell.Run()”,但这给我一个“权限被拒绝”的错误,这是有问题的,因为我不想告诉我的客户端改变他们的Windows环境如何配置只是为了运行我的程序.我能做什么?

  8. Windows – 将批处理文件重定向到文件

    我有一个执行java应用程序的批处理文件.我试图修改它,以便每当发生异常时,它会将STDERR写入一个文件.看起来像这样:有没有办法我可以将参数%1和%2写入log.txt文件?

  9. 在stderr的Windows上更改文本输出颜色

    我最近发现了一个帖子给出了一个解决方案,让stderr的文本输出为Linux的不同颜色他们创建了以下bash脚本脚本这会导致输出在来自stderr时打印黄色文本.stdout仍然打印相同的颜色.该脚本保存在名为color的$PATH目录中.这允许我使用make或scons运行脚本,并且它将以黄色显示来自stderr的所有文本.这对于在编译时发现错误非常有用.是否有类似的脚本可用于Windowscmdshell?

  10. tomOS6在CentOS 6上:无法停止/重启服务

    建议>始终使用Tomcatsetenv.sh文件来定义CATALINA_PID.这至少会给你上面的方法#2.Tomcat的setenv.sh默认情况下,文件不存在,因此您必须自己创建.>围绕Tomcat自己的脚本创建一个包装脚本,以确保Tomcat真的死了.在我工作的地方,我们已经在运行Tomcat作为服务的所有主机上实现了这一点.对于Unix/Linux的任何变体,它都是同样的问题/解决方案.

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部