0

我有一个 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)
4

1 回答 1

0

您在.txt文件中看到的字符是 BELL 字符。您可以使用正则表达式运算符将其删除,如下所示:

$content -replace "\a","" > 'C:\filename.txt'

更新:这显示了如何删除不在范围内的所有字符,而不仅仅是单个字符。在此示例中,任何不是数字字符的内容都将替换为空字符:

$content -replace "[^0-9]","" > 'C:\filename.txt' 
于 2013-10-07T16:09:25.823 回答