Мне не удается загрузить документ Word 2010 (14.0.x) в Сохранить как или Закрыть с помощью Powershell. Судя по всему интернету, он должен работать с 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 (похоже, у людей нормально работает в версии 2.0) и комментарий Эд Уилсон не ответил.