Pipe to Out-GridView和Out-File有不同的行



下面的命令只返回一行(忽略参数-Context 10)

select-string -path file.txt -pattern "..." -Context 10 | Out-GridView

但是,下面的命令创建一个包含所有行的文件。

select-string -path file.txt -pattern "..." -Context 10 | Out-File file2

为什么有区别?

这是因为Out-Gridview消耗了Select-String输出的整个MatchInfo对象,并将该对象的所有属性显示为列。另一方面,Out-File基本上在将所有内容输出到文件之前执行ToString()方法,对于这种对象,当它转换为字符串时,它输出行,以及上下文行。如果你想让Out-GridView做到这一点,你将不得不管道到Out-String,然后到Out-Gridview

最新更新