我无法使用Powershell将Word 2010 (14.0.x)文档另存为或关闭。在线教程中都显示应该可以在2.0版本上运行,但我没有这个版本了。
简单情况:
似乎Get-Member显示具有参数的任何方法都会失败。例如,调用简单的$Doc.Save()可以正常工作。查看MSDN关于这些方法的信息,它似乎需要像SaveChanges方法那样的东西,但这实在超出了我的能力范围。
我已经尝试过传递$Null或$True或$False,希望能运气好一点,但它仍然不停地反对我。
我能找到的所有信息都是它显然与PS 3.0 Beta相关(对于人们来说,在2.0中似乎运行良好),以及一条评论Ed Wilson没有回复。
简单情况:
$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没有回复。