如何在cmd中给findstr输出添加颜色?

6
在Linux中,grep输出会被突出显示成红色。在Windows命令提示符下,是否有任何特殊的命令可以使用findstr实现相同的效果呢?
我正在尝试在cmd中运行以下命令: adb logcat -v time | findstr /a:color [4] \"NETWORK" 但是返回结果为specify only /L or /R. (通过谷歌搜索,我了解到/a用于颜色格式,4代表红色)
我需要搜索我的Android应用程序正在进行的“NETWORK”调用。为了更好地查看日志,如果findstr的输出能够上色,那将非常有帮助。

1
输入“findstr /?”并查看。 - user6017774
当您仅使用“/a:04”并省略字符串“color”时会发生什么? - Marged
删除 "NETWORK" 前面的反斜杠;否则,开头的 " 将成为搜索字符串的一部分... - aschipfl
5
findstr 命令不会对完整的输出进行颜色标记,/A 开关只会对前面的行号(/N)或文件名(如果有多个文件)进行颜色标记;要了解更多信息,请查看这篇很棒的文章:如何在 Windows 批处理文件中使用多个颜色? - aschipfl
1
在Windows中使用findstr就像是退回到DOS时代,最好还是从头开始编写自己的解析器。安装Cygwin,让你更愉快。 - not2qubit
1个回答

5
/a 选项可以让你选择匹配行前面打印的文件/行号的颜色,但不能用于突出显示文本中的匹配。您可以按如下方式使用颜色属性:findstr /s /n /a:e /i "<your search string>" <file paths>。请注意,/a:<color code> 是您要寻找的选项。以下是一个示例:findstr with color example 这里是可用颜色的列表。我正在使用 'e' 或 'E' 或 '浅黄色': Colors available in cmd

好的,但这与grep的行为不同。Grep会打印包含您搜索的文本的行,就像findstr一样,但它会突出显示搜索的文本。对我来说,findstr有点无用,因为没有这样的突出显示,我仍然需要手动阅读每一行并找到搜索的文本所在的位置。 - David Ferenczy Rogožan
6
明确一点,这不是答案。Linux 的 grep 命令会在输出文本中给匹配的字符串上色,而 Windows 的 findstr 命令的 /a:<十六进制数字><十六进制数字> 标志只会在指定了 /n(行号)或 /s(文件名)标志时给生成的输出标题上色。 - Patrick Dark
1
误导性的答案。 - sancho.s ReinstateMonicaCellio
2
很高兴更新,如果新版本的findstr支持像grep一样突出显示搜索表达式。这是根据我的研究在发布时findstr所能做到的最好的了。 - user3613932
2
这怎么不是答案呢,或者说它是一个误导性的答案?问题是,“如何在cmd中着色findstr输出?”所给出的答案清楚地解释了如何使用Windows上的CMD中的findstr来做到这一点。没有多余的东西。就像苹果不是土豆一样,你必须原谅findstr不能成为grep。接受它的本质。如果你想要grep,那就问如何在Windows上运行grep。并学会提出更好的问题!例如,“如何在cmd的findstr输出中突出显示字符串匹配项?”然后你就得到了你想要的答案:这是不可能的。 - Samir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接