2012-08-16 113 views
1

的多个位置,我想从一个批处理或VBS脚本文件合并多个PDF的呼唤PDFTK。 问题是PDF的全部位于公共父目录内的子文件夹中。例如:父文件夹> subfolder1,subfolder2,subfolder3,其中所述脚本/ BAT文件位于父文件夹并且每个子文件夹包含PDF。合并PDF的与PDFTK

PDFTK被称为如下:pdftk.exe * .PDF猫输出OutputFile.pdf

这将合并只是PDF的当前目录,虽然,而不是在子文件夹。 有没有办法做到下列之一:

  1. 使用VBS/BAT文件中的所有PDF复制的子文件夹到另一个目录的,而不是错误出如果一些子文件夹是空的
  2. 有pdftk通过子文件夹来选择PDF的合并

任何帮助,将不胜感激。

回答

1

试试这个:

Wscript.Echo "begin." 
Dim pdffiles 
pdffiles="" 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objSuperFolder = objFSO.GetFolder(WScript.Arguments(0)) 
Call ShowSubfolders (objSuperFolder) 

Dim objShell 
Set objShell = CreateObject("Shell.Application") 
objShell.ShellExecute "pdftk.exe", pdffiles & " output combined.pdf", "", "runas", 1 

Wscript.Echo "end." 

WScript.Quit 0 

Sub ShowSubFolders(fFolder) 
    Set objFolder = objFSO.GetFolder(fFolder.Path) 
    Set colFiles = objFolder.Files 
    For Each objFile in colFiles 
     If UCase(objFSO.GetExtensionName(objFile.name)) = "PDF" Then 
      pdffiles=pdffiles & " " & objFile.Name 
     End If 
    Next 

    For Each Subfolder in fFolder.SubFolders 
     ShowSubFolders(Subfolder) 
    Next 
End Sub 
+0

谢谢,这看起来不错。我没有测试它,因为我找到了一个使用BAT文件的解决方案。 – Dave 2012-08-17 19:53:30