我有一个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)
答案 0 :(得分:0)
您在.txt
文件中看到的角色是一个BELL角色。您可以使用正则表达式运算符将其删除,如下所示:
$content -replace "\a","" > 'C:\filename.txt'
更新:显示如何删除不在范围内的所有字符,而不仅仅是单个字符。在此示例中,任何不是数字字符的内容都将替换为空字符:
$content -replace "[^0-9]","" > 'C:\filename.txt'