我正在处理大量的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.")
}
...
但我仍然坚持如何选择文件的内容并更新所有内容,即必须进入此代码而不是两个??? - 标记来实现我想要的内容?
答案 0 :(得分:0)
你有没有尝试过:
$doc.Fields | %{$_.Update()}
那应该更新所有字段