我无法使用 Powershell将 Word 2010 (14.0.x) 文档另存为或关闭。从网上的所有 tuts 来看,它似乎应该与 2.0 一起使用,但我不再拥有它了。
简单案例:
$Path = "C:\MyDoc.docx"
$Word = New-Object -comobject Word.Application
$Word.Visible = $True #Do this to close it out without task manager
$Doc = $Word.Documents.Open($Path)
$Doc.SaveAs($Path)
$Doc.Close()
此时一切正常,直到保存和关闭:
Argument: '1' should be a System.Management.Automation.PSReference. Use [ref].
At line:5 char:1
+ $Doc.SaveAs($Path)
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : NonRefArgumentToRefParameterMsg
Argument types do not match
At line:6 char:1
+ $Doc.Close()
+ ~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], ArgumentException
+ FullyQualifiedErrorId : Argument types do not match
似乎 Get-Member 显示为具有参数的任何方法都失败了。例如,调用一个简单的 $Doc.Save() 似乎可以正常工作。查看有关这些方法的 MSDN 信息,它看起来需要像SaveChanges方法这样的东西,但老实说,目前这超出了我的技能。
我曾尝试传递 $Null 或 $True 或 $False 以希望获得好运,但它一直在阻止我。
我所能找到的只是它显然与 PS 3.0 Beta 相关联(似乎在 2.0 中对人们来说可以正常工作)并且评论Ed Wilson 还没有回复到.