2011-06-03 103 views
1

我想使用PowerShell将自定义标题添加到.doc文件(我的意思是实际的标题,而不是标题)。这应该工作:将标题添加到Word文档?

$Word=New-Object -ComObject "Word.Application" 
$wdSeekPrimaryHeader = 1 
$Doc=$Word.Documents.Open("C:\test.doc") 
$Selection=$Word.Selection 
$Doc.ActiveWindow.ActivePane.View.SeekView=$wdSeekPrimaryHeader 
$Selection.TypeText("Text") 
$doc.close([ref]$Word.WdSaveOptions.wdDoNotSaveChanges) 
$word.quit() 

但它没有。它实际上没有我能说的。

任何想法,我在做什么错在这里?

这里是工作的代码:

$Word=New-Object -ComObject "Word.Application" 
$wdSeekPrimaryHeader = 1 
$Doc=$Word.Documents.Open("C:\test.doc") 
$Selection=$Word.Selection 
$Doc.ActiveWindow.ActivePane.View.SeekView=$wdSeekPrimaryHeader 
$Selection.TypeText("Text") 
$Doc.Save() 
$Doc.Close() 
$Word.Quit() 

再次感谢偷看!

回答

2

我不确定[ref]是否可以正常工作,但是您已经引用了DoNotSaveChanges。你不想保存更改吗?

+0

是啊,这实际上是代码:) – JoeG 2011-06-03 16:51:25

+0

错行我的坏,在剧本,我在想这个问题,我曾评论了正确的代码,并且是实际使用我发布的代码。感谢让我更加密切关注! – JoeG 2011-06-03 19:17:15

+0

是的,[ref]确实有效;) – JoeG 2011-06-03 19:21:13

1

我在[参考](参数:'1'不应该是System.Management.Automation.PSReference,不要使用[参考])时出错。) 如果我将close(..)行搭配:

$doc.save() 
$doc.close() 

然后我看到标题

+0

你安装了什么版本的Word? – JoeG 2011-06-03 16:50:51

+0

$ word.Version输出'12.0' – PeskyGnat 2011-06-03 17:03:28