Powershell控制MSWord:如何选择整个内容并进行更新?

时间:2012-11-15 01:22:13

标签: powershell ms-word

我正在处理大量的Word文档,这些文档大量使用字段和交叉引用(内部和文档之间)。 要更新这些并在更改后使所有内容保持一致,我必须打开每个文件,选择整个文件的内容(相当于按Ctrl-A)并更新所有字段(相当于点击F9)。我必须为所有文件执行两次,这样所有文件间交叉引用也会正确更新。

由于这是一个相当繁琐冗长的过程,我想给我写一个PowerShell脚本来为我做这个。更新文件的相关功能如下所示:

...
function UpdateDoc([object]$word, [object]$fileHandle) {
    Write-Host("Updating: '" + $fileHandle.Name + "' ('" + $fileHandle.FullName + "'):")
    # open the document:
    $doc = $word.Documents.Open($fileHandle.FullName)
    # select the entire document:
    ???
    # update it:
    ???
    # then save it:
    $doc.Save
    $doc.Close
    Write-Host("'" + $fileHandle.Name + "' updated.")
}
...

但我仍然坚持如何选择文件的内容并更新所有内容,即必须进入此代码而不是两个??? - 标记来实现我想要的内容?

1 个答案:

答案 0 :(得分:0)

你有没有尝试过:

$doc.Fields | %{$_.Update()}

那应该更新所有字段