试试这个小实验.Foo.txt使用非常长的文本行(比如500个字符长)创建一个文件,如下所示:
// Foo.txt
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
Run Code Online (Sandbox Code Playgroud)
现在发出以下命令:
$ Get-Content Foo.txt | Select-String "a" | Out-File Foo2.txt
Run Code Online (Sandbox Code Playgroud)
你会发现长串的字符串已被分解为更小的行Foo2.txt.每条较小的线的长度与控制台宽度相同.
当输出没有进入控制台时,为什么Out-File会将长行分成较小的一行?
为什么Out-File不会破坏以下命令的行?
$ Get-Content Foo.txt | Out-File Foo3.txt
Run Code Online (Sandbox Code Playgroud)
Pol*_*hix 13
您可以使用-width参数调整Out-File中断行的位置
$ Get-Content Foo.txt | Select-String "a" | Out-File -width 1000 Foo2.txt
Run Code Online (Sandbox Code Playgroud)
Tah*_*san 10
$ Get-Content Foo.txt | Select-String "a" | Add-Content Foo2.txt
Run Code Online (Sandbox Code Playgroud)
使用Add-Content(或者Set-Content如果您希望覆盖文件,则可以使用).
这可以通过以下事实来解释:结果Get-Content Foo.txt | Select-String "a"是类型MatchInfo,它不是a string.
只是测试:
Get-Content Foo.txt | Select-String "a" | Format-list *
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12083 次 |
| 最近记录: |