繁体   English   中英

在PowerShell中着色findstr / grep输出

[英]Colorize findstr/grep output in PowerShell

我发现了很多问题/答案以及其他类型的帖子,这些帖子谈论使用别名替换,或别名grep for findstr。 虽然这很有用,但我喜欢在许多终端环境中使用grep的一件事是突出显示找到的文本; 经常是红色的。

findstr / A:颜色似乎意味着这应该是可能的,甚至很容易......但我还没有让它在一个简单的声明中工作,如:

set-alias grep "findstr /A:color F0"

有办法做到这一点吗?

谢谢

我很少创建新的别名,所以很可能有其他(更好的)方法,而不是我在上面写的那个,但这种方式似乎有效。

Set-Alias的帮助部分,参数Value

-值

  Specifies the name of the cmdlet or command element that is being aliased. 

因此,它希望别名命令可以是cmdlet或命令元素。

如果您执行Get-Help Set-Alias -Examples您将看到最后一个与您希望类似的示例,调用命令并指定一些硬编码参数。 它使用以下代码执行此操作:

PS C:\>function CD32 {set-location c:\windows\system32}
PS C:\>set-alias go cd32

因此,您需要做的是创建一个能够执行您想要的功能的函数,然后为该命令添加别名。 一个例子是:

function Search-Text
{
    & c:\Windows\system32\findstr.exe /A:F0 $Args
}

然后你可以将新函数别名为grep

Set-Alias grep Search-Text

最后只需称它为:

grep mysearchword file1.txt file2.txt

注意 :当我在普通的PowerShell shell中运行它时,上面的代码对我来说很好(可能因为这实际上是带有一些额外东西的普通命令shell),但是在ISE中没有得到预期的彩色打印(显然ISE处理主机打印方式不同)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM