我正在使用Powershell来阅读一个包含表格的单词(2003)文档。表中的文本包含我需要捕获以进行处理的新行字符。但是当我使用Write-host或Write-output时,新的行字符被忽略,多个值被打印,好像它是一行一样。
如何打破单元格中的新行字符?我正在使用的代码如下:
$objWord = New-Object -Com Word.Application
$filename = 'C:\Chicago_NewUser.doc'
$objDocument = $objWord.Documents.Open($filename)
$LETable = $objDocument.Tables.Item(1)
$LETableCols = $LETable.Columns.Count
$LETableRows = $LETable.Rows.Count
Write-output "Starting to write... "
for($r=1; $r -le $LETableRows; $r++) {
for($c=1; $c -le $LETableCols; $c++) {
#Write-host $r "x" $c
$content = $LETable.Cell($r,$c).Range.Text
Write-output $content
}
}
$objDocument.Close()
$objWord.Quit()
$rc = [System.Runtime.Interopservices.Marshal]::ReleaseComObject($objWord)
单词文档位于https://docs.google.com/document/d/1W0usG4ASsvd3PqQ20l7P8rq0hWBsYlrI0iM1S5ZcumU/edit 有问题的价值是: SET REG = 04 SET BLD = 01
但是powershell脚本将其打印为 SET REG = 04SET BLD = 01
Self回答:
我想我想出来了。
我可以使用以下代码行检测新行字符:
Write-output $content.contains("`r")