【发布时间】:2016-08-22 04:13:57
【问题描述】:
我在这里尝试实现的是将文本文件的第一行读取到字符串并完全捕获回车换行符(或任何其他不可打印的字符),但在没有读取完整内容的情况下都不会文件也不是第二行(如果存在),此时我不确定如何使用 PowerShell 来实现这一点。请注意,该脚本将处理大小不超过 30GB 的文件,因此将所有文件内容读入内存显然对我来说是没有选择的(时间上也是如此)。
使用下面的内容我只能在第一行阅读,但CR/LF 字符会在行尾被修剪:
$File = New-Object System.IO.StreamReader -Arg $PathFull
$Header = $File.ReadLine()
$File.Close()
我也可以使用:
$Header = (Get-Content -Path $PathFull -Head 1)
但是,正如预期的那样,Get-Content 将每一行作为字符串读取到对象集合中,并且这里的 CR/LF 字符也会在第一行丢失。
我能够读取CR/LF 字符的唯一方法是使用带有Get-Content 命令行开关的-Raw 键,但这并没有解决我原来的问题,因为它首先读取了文件的全部内容并且不允许同时使用-Raw 和-Head 键。
请注意,在读取以下内容后手动将这些字符添加回字符串:
$Header = $Header + "$([Char]13)$([Char]10)"
对我来说不是一个选项,我的目标纯粹是确定我阅读的行是否正确地用CR/LF、CR 或LF 的组合分隔,我不知道在阅读实际行之前。
非常感谢有关此主题的任何帮助。
【问题讨论】:
标签: powershell carriage-return