我試圖運行一些代碼,查找所有.doc & .docx文件在目錄&子目錄中,然後將每個文件轉換爲PDF格式。當文件已存在時Powershell - SaveAs函數
下面的代碼只能如果在這些目錄中,即它僅適用第一次沒有PDF的實例。隨後每次失敗時:
Exception calling "SaveAs" with "2" argument(s): "Command failed" At C:\convert\convertword.ps1:12 char:13 + $doc.saveas <<<< ($path, $wdFormatPDF) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ComMethodTargetInvocation
當我刪除以前創建的PDF並重新運行PS時,它工作正常。因此,我只能假設我從我的SaveAs
函數中錯過了一個開關或參數,它以某種方式強制覆蓋?
$wdFormatPDF = 17
$word = New-Object -ComObject word.application
$word.visible = $false
$folderpath = "c:\convert\*"
$fileTypes = "*.docx","*doc"
Get-ChildItem -path $folderpath -recurse -include $fileTypes |
foreach-object `
{
$path = ($_.fullname).substring(0,($_.FullName).lastindexOf("."))
"Converting $path to pdf ..."
$doc = $word.documents.open($_.fullname)
$doc.saveas($path, $wdFormatPDF)
$doc.close()
}
$word.Quit()
的鏈接爲什麼不只是測試的路徑的文件,然後刪除,項目就試圖保存,如果它存在過嗎? – EBGreen 2012-04-25 15:07:21