Ich versuche, Powershell zu verwenden, um eine Batch-Konvertierung von Word DOCX zu PDF zu tun - einem Skript auf dieser Seite gefunden werden: http://blogs.technet.com/b/heyscriptingguy/archive/2013/03/24/weekend-scripter-convert-word-documents-to-pdf-files-with-powershell.aspxGrundpowershell - Batch-Konvertierung von Word-Docx zu PDF
# Acquire a list of DOCX files in a folder
$Files=GET-CHILDITEM "C:\docx2pdf\*.DOCX"
$Word=NEW-OBJECT –COMOBJECT WORD.APPLICATION
Foreach ($File in $Files) {
# open a Word document, filename from the directory
$Doc=$Word.Documents.Open($File.fullname)
# Swap out DOCX with PDF in the Filename
$Name=($Doc.Fullname).replace("docx","pdf")
# Save this File as a PDF in Word 2010/2013
$Doc.saveas([ref] $Name, [ref] 17)
$Doc.close()
}
Und ich halte auf bekommen diesen Fehler und kann nicht herausfinden warum:
PS C:\docx2pdf> .\docx2pdf.ps1
Exception calling "SaveAs" with "16" argument(s): "Command failed"
At C:\docx2pdf\docx2pdf.ps1:13 char:13
+ $Doc.saveas <<<< ([ref] $Name, [ref] 17)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Irgendwelche Ideen?
Auch - wie müsste ich es ändern, um auch doc (nicht docX) -Dateien zu konvertieren, sowie die lokalen Dateien (Dateien am selben Ort wie der Ort des Skripts) zu verwenden?
Sorry - nie Scripting Powershell getan ...
Das funktionierte - dank - geändert $ documents_path dynamisch zu sein, basierend auf Skript Standort mithilfe von '$ documents_path = Split-Path -parent $ MyInvocation.MyCommand.Path' – takabanana
Ist oledb verwendet in dieser Umwandlung? – culter
Sie sollten auch das COM-Objekt freigeben: '[System.Runtime.Interopservices.Marshal] :: ReleaseComObject ($ word_app)'. Das Entfernen der gesamten Variablen wird auch von [The Scripting Guys] vorgeschlagen (http://technet.microsoft.com/en-us/library/ff730962.aspx): 'Remove-Variable word_app' – ComFreek