管道到Out-GridView和Out-File有不同的行?

时间:2015-06-02 20:50:30

标签: powershell

以下命令仅返回一行(忽略参数-Context 10。)

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

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

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

为什么会有区别?

1 个答案:

答案 0 :(得分:3)

这是因为Out-Gridview使用MatchInfo输出的整个Select-String对象,并将该对象的所有属性显示为列。另一方面,Out-File基本上在它输出到文件之前对所有内容执行ToString()方法,对于那种对象,当它转换为字符串时,它输出行,并将上下文行作为好。如果您希望Out-GridView执行此操作,则必须输出到Out-String,然后输入Out-Gridview