我有一个powershell脚本,它将从Microsoft word文档的表中读取值。但是,当我尝试将该值写入文本文件以供批处理文件稍后使用时,它不能按预期工作。文本文件显示的值的末尾带有一个点。然后,当我从批处理文件中的文本文件中读取值时,它就会变得一团糟。
$wd = New-Object -ComObject Word.Application
$wd.Visible = $true
$doc = $wd.Documents.Open("C:\Users\jxh\Desktop\taskids.doc" )
$iTable = $doc.Tables.Item(1)
$r = $iTable.Rows.Count
$c = 1
Write-host $r "x" $c
$content = $iTable.Cell($r, $c).Range.Text
Write-host $content
if ($content) {
$r = $iTable.Rows.Count - 1
$c = 1
Write-host $r "x" $c
$content = $iTable.Cell($r, $c).Range.Text #| Out-File C:\filename.txt
Write-host $content
$iTable.Cell($iTable.Rows.Count, $c).Range.Text=$content+1 }
$content > C:\filename.txt
$doc.Close()
$wd.Quit()
# Stop Winword Process
$rc = [System.Runtime.Interopservices.Marshal]::ReleaseComObject($wd)发布于 2013-10-08 00:09:26
您在.txt文件中看到的字符是贝尔字符。您可以使用regex操作符将其剥离出来,如下所示:
$content -replace "\a","" > 'C:\filename.txt'UPDATE:这展示了如何删除范围之外的所有字符,而不仅仅是单个字符。在此示例中,任何不是数字字符的内容都将替换为空字符:
$content -replace "[^0-9]","" > 'C:\filename.txt' https://stackoverflow.com/questions/19227837
复制相似问题