【发布时间】:2012-04-25 14:07:43
【问题描述】:
我正在尝试运行一些代码来查找目录和子目录中的所有 .doc 和 .docx 文件,然后将每个文件转换为 PDF 格式。
以下代码仅在这些目录中没有 pdf 实例时才有效,即它仅在第一次时有效。以后每次都会失败:
使用“2”参数调用“SaveAs”的异常:“命令失败” 在 C:\convert\convertword.ps1:12 char:13 + $doc.saveas
当我删除之前创建的 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()
【问题讨论】:
-
为什么不只是 Test-Path 文件然后 Remove-Item 在你尝试保存它之前,如果它存在?
标签: powershell save-as