以下命令仅返回一行(忽略参数-Context 10
。)
select-string -path file.txt -pattern "..." -Context 10 | Out-GridView
但是,以下命令会创建一个包含所有行的文件。
select-string -path file.txt -pattern "..." -Context 10 | Out-File file2
为什么会有区别?
答案 0 :(得分:3)
这是因为Out-Gridview
使用MatchInfo
输出的整个Select-String
对象,并将该对象的所有属性显示为列。另一方面,Out-File
基本上在它输出到文件之前对所有内容执行ToString()
方法,对于那种对象,当它转换为字符串时,它输出行,并将上下文行作为好。如果您希望Out-GridView
执行此操作,则必须输出到Out-String,然后输入Out-Gridview
。