Powershell MS Word中缺少换行符的文档文本

Powershell MS Word中缺少换行符的文档文本,powershell,ms-word,Powershell,Ms Word,我想在word文档中获取文档文本以进行进一步处理,但从文档中读取的文本缺少换行符,单词被挤压在一起。 这是一个测试用例。首先,在新文档中写入几行: PS C:\Users\outlo> $wordInstance = New-Object -ComObject Word.Application PS C:\Users\outlo> $wordInstance.Visible = $true PS C:\Users\outlo> $doc = $wordInstance.Docu

我想在word文档中获取文档文本以进行进一步处理,但从文档中读取的文本缺少换行符,单词被挤压在一起。 这是一个测试用例。首先,在新文档中写入几行:

PS C:\Users\outlo> $wordInstance = New-Object -ComObject Word.Application
PS C:\Users\outlo> $wordInstance.Visible = $true
PS C:\Users\outlo> $doc = $wordInstance.Documents.Add()
PS C:\Users\outlo> $sel = $wordInstance.Selection
PS C:\Users\outlo> $sel.TypeText("Hello World!")
PS C:\Users\outlo> $sel.TypeParagraph()
PS C:\Users\outlo> $sel.TypeText("Hello World 2!")
PS C:\Users\outlo> $doc.SaveAs("saved.doc", [microsoft.office.interop.word.WdSaveFormat]::wdFormatDocument)
现在读到:

PS C:\Users\outlo> $wordInstance = New-Object -ComObject Word.Application
PS C:\Users\outlo> $wordInstance.Visible = $true
PS C:\Users\outlo> $wordInstance.Documents.Open("C:`\Users`\outlo`\Documents`\saved.doc")
PS C:\Users\outlo> $allText = $doc.StoryRanges[1].Text
PS C:\Users\outlo> $allText
Hello World!Hello World 2!

中间的换行符不见了。我正在使用Word 2016。

我首先将文档保存为
.txt
,并启用换行符,然后读取该文本

$txtPath = [System.IO.Path]::ChangeExtension($docPath, '.txt')
$doc.SaveAs2($txtPath, [Microsoft.Office.Interop.Word.WdSaveFormat]::wdFormatTextLineBreaks)
$wordInstance.Quit()
$allText = [System.IO.File]::ReadAllText($txtPath)