PowerShell将字段代码添加到ms word页脚

时间:2010-11-30 16:42:32

标签: powershell ms-word

我在某些文件中设置了现场代码,这些代码会在打印时显示当前日期,但据我所知,其余时间则不可见。我现在需要将这个页脚应用于数百个文档。这似乎应该可以用PowerShell做,但我真的不知道如何使用它,并且找不到好的参考/文档(到目前为止我已经得到它来打开文档,替换文本,然后关闭文档)。我希望以下域代码位于每个页脚部分的右侧:

{IF {PRINTDATE \ @" M / d / yyyy h:mm"} = {DATE \ @" M / d / yyyy h:mm"}" {DATE \ @" M / d / yyyy"}"未受控制的复制" "

我知道这可能是一种可怕的方法,但是,真正的问题是,如何使用PowerShell向Word 2007文档中的页脚添加字段代码?

1 个答案:

答案 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() }