PowerShell:为什么Out-File将长行分成较小的行?

时间:2012-03-02 04:35:13

标签: powershell

尝试这个小实验。使用非常长的文本行(例如500个字符长)创建一个文件Foo.txt,如下所示:

// Foo.txt
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

现在发出以下命令:

$ Get-Content Foo.txt | Select-String "a" | Out-File Foo2.txt

您会发现{@ 1}}中的长行字符串已细分为较小的一行。每条较小线的长度与控制台宽度相同。

为什么 Out-File 会在输出没有进入控制台时将长线分成较小的一行?

为什么Out-File不会破坏以下命令的行?

Foo2.txt

3 个答案:

答案 0 :(得分:10)

您可以使用-width参数

调整Out-File中断行的位置
$ Get-Content Foo.txt | Select-String "a" | Out-File -width 1000 Foo2.txt

答案 1 :(得分:10)

$ Get-Content Foo.txt | Select-String "a" | Add-Content Foo2.txt

使用Add-Content(如果您要覆盖该文件,可以使用Set-Content。)

答案 2 :(得分:5)

这可以解释为Get-Content Foo.txt | Select-String "a"的结果属于MatchInfo类型,而不是string

只是测试:

Get-Content Foo.txt | Select-String "a" | Format-list *