2011-08-18 133 views
0

我正在寻找一个批处理文件或将像PDF文件名称合并的VBScript。应该合并的文件将具有与第一个“。”相同的文件名。我有整个文件夹包含约4000个文件。的文件扩展名匹配的格式如下如何批量合并PDF文档

1111111111111111.22222222.pdf ==> 1是任意16个数字0-9和2是任意的8个数字0-9

我想合并的文件夹的文件一样在批次样式。所有具有相同文件名的文件应该合并为“。”。

举例:1111111111111111.25484686.pdf应该1111111111111111.54874568而5555555555555555.78468767合并,应当合并与5555555555555555.48687654和5555555555555555.68974582

的文件可以输出到其他文件夹,但不是必需的。输出后的新文件名只要有效就不重要。

我知道有一些软件可以处理这个问题,但拖拽所有类似文件以合并它们需要很长时间。

+1

批处理文件\ VBscript没有固有的能力来合并PDF文件。所以首先你需要找到一些可以做到这点的软件,并且还有一个可用于VBS或批处理文件的API。我建议你可以在[Superuser](http://superuser.com)上询问这个问题。当你发现后,你可以在这里寻求关于如何编写脚本来自动处理的帮助。 –

+0

我同意@ ho1。我不想关闭你的问题,但如果你按照建议寻找特定于你的目的的软件,那么会更好,然后回来编辑这个脚本问题。 –

+0

我希望这不会是这样。我已经尝试了一切,每个人都说过同样的事情。这是不幸的,因为我知道这对许多公司是有效的。不管怎么说,多谢拉。 –

回答

3

谷歌搜索发现http://www.pdfsam.org/ - 一个网站,提供免费的PDF合并工具,有一个命令行界面(以及一个图形用户界面)。我不知道这个效果如何。确保您获得本网站提供的免费实用程序,而不是在同一网站上公布的竞争对手的解决方案。

还有很多其他的公用设施,其中大部分是收费的。

一旦你弄清楚如何使用你选择的工具的命令行界面,你可以使用下面的批处理文件来动态构建你要合并的文件列表。 (此批代码是未经考验的。这个概念肯定会工作,但它可能需要一些调试)

@echo off 
setlocal enableDelayedExpansion 

:: This initial loop determines which files need to be merged 
:: and then calls :merge for each unique set of files. This top 
:: loop should work no matter what utility you choose. 
set "current=" 
set cnt=0 
:: for current directory, LOC should be empty (or .\) 
:: for any other path, LOC should include \ at end 
set "LOC=" 
for %%F in ("%LOC%*.*.pdf") do (
    for /f "tokens=1,* delims=." %%A in ("%%~nF") do (
    if "%%A" neq "!current!" (
     if defined current call :merge 
     set cnt=0 
     set current=%%A 
    ) 
    set /a cnt+=1 
    set pdf.!cnt!=%%~fF 
) 
exit /b 


:merge 
:: This routine should build the command line to merge the current 
:: file list contained in pdf.1 through pdf.!cnt! 
:: 
:: Below is code to build a hypothetical file list to be used on 
:: the merge command line. This will obviously need to be modified 
:: based on the syntax of your chosen merge utility. 
:: 
    set "list=" 
    for /l %%N in (1 1 !cnt!) do set list=!list! -f "!pdf.%%N!" 
:: 
:: 
:: The rest is up to you! 
:: 
exit /b 
0

这个软件,Dysprosium,而不需要编写一个批处理文件是必要的,没有鼠标拖放及可批量合并可以自由获取和使用。如预期的那样将所有批次放在同一个文件夹中就足够了。但是您需要使硬件资源与批处理文件的大小成比例。

这是一个简单轻便的“JAR”文件,便携式,无需安装在操作系统上。

由于它是基于Java的软件,因此还需要增加Java运行时可用的Java内存。 Java需要获取一部分物理内存来渲染大型PDF文件。这个wiki解释了如何增加Java运行时内存。

(恕我直言)使用现成的软件,您无法合并总大小超过3GB-3.5GB的PDF批处理。