我在某些文件中设置了现场代码,这些代码会在打印时显示当前日期,但据我所知,其余时间则不可见。我现在需要将这个页脚应用于数百个文档。这似乎应该可以用PowerShell做,但我真的不知道如何使用它,并且找不到好的参考/文档(到目前为止我已经得到它来打开文档,替换文本,然后关闭文档)。我希望以下域代码位于每个页脚部分的右侧:
{IF {PRINTDATE \ @" M / d / yyyy h:mm"} = {DATE \ @" M / d / yyyy h:mm"}" {DATE \ @" M / d / yyyy"}"未受控制的复制" "
我知道这可能是一种可怕的方法,但是,真正的问题是,如何使用PowerShell向Word 2007文档中的页脚添加字段代码?
答案 0 :(得分:1)
感谢crobin1 at tek-tips获得了这个答案。他说他引用了http://msdn.microsoft.com/en-us/library/bb258930%28v=office.12%29.aspx和一堆“嘿,脚本专家!”博客条目
这是一个示例脚本,几乎可以满足我的需求。
功能编辑页脚 ([string] $ Document){
add-type -AssemblyName "Microsoft.Office.Interop.Word" #Variables used set-variable -name wdAlignPageNumberCenter -value 1
-option constant
$fc1 = @" IF {PRINTDATE \@ "M/d/yyyy h:mm"}={DATE \@ "M/d/yyyy h:mm"} "UNCONTROLLED COPY AS OF {DATE \@ "M/d/yyyy"}" " " "@ $Word = New-Object -comobject Word.Application $Word.Visible = $True #$Word.Visible = $False $fc2 = [ref] "" -as [Type] $OpenDoc = $Word.Documents.Open($Document) $c = $OpenDoc.Sections.Item(1).Footers.Item(1).PageNumbers.Add($wdAlignPageNumberCenter) $range1 = $openDoc.Sections.Item(1).Footers.Item(1).range $field1 = $OpenDoc.Fields.Add($range1, -1, $fc2) $field1.Code.Text = $fc1 $field1.Update #$OpenDoc.Close() }