Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vbscript 如何批量合并PDF文档_Vbscript_Batch File_Batch Processing - Fatal编程技术网

Vbscript 如何批量合并PDF文档

Vbscript 如何批量合并PDF文档,vbscript,batch-file,batch-processing,Vbscript,Batch File,Batch Processing,我正在寻找一个批处理文件或vbscript,将合并像pdf文件名。应该合并的文件将具有相同的文件名,一直到第一个“.”我有包含大约4000个文件的整个文件夹。文件扩展名与以下格式匹配 1111111111.2222222.pdf=>1表示任意16个数字0-9,2表示任意8个数字0-9 我想以批处理方式合并文件夹的相似文件。在第一个文件名之前具有相同文件名的所有文件都应合并 示例:1111111111111.25484686.pdf应与1111111111111.54874568合并,而55555

我正在寻找一个批处理文件或vbscript,将合并像pdf文件名。应该合并的文件将具有相同的文件名,一直到第一个“.”我有包含大约4000个文件的整个文件夹。文件扩展名与以下格式匹配

1111111111.2222222.pdf=>1表示任意16个数字0-9,2表示任意8个数字0-9

我想以批处理方式合并文件夹的相似文件。在第一个文件名之前具有相同文件名的所有文件都应合并

示例:1111111111111.25484686.pdf应与1111111111111.54874568合并,而555555555555.78468767应与555555555555.48687654和555555555555.68974582合并

这些文件可以输出到另一个文件夹,但不是必需的。输出后的新文件名也不重要,只要它有效

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

谷歌搜索发现-一个提供免费PDF合并实用程序的网站,该实用程序具有命令行界面(以及GUI)。我不知道这有多有效。确保您获得本网站提供的免费实用程序,而不是在同一网站上广告的竞争对手的解决方案

还有很多其他的公用事业,大部分都是收费的

一旦您了解了如何使用所选实用程序的命令行界面,就可以使用下面的批处理文件来动态构建要合并的文件列表。(此批处理代码未经测试。此概念肯定有效,但可能需要一些调试)

谷歌搜索发现-一个提供免费PDF合并实用程序的网站,该实用程序具有命令行界面(以及GUI)。我不知道这有多有效。确保您获得本网站提供的免费实用程序,而不是在同一网站上广告的竞争对手的解决方案

还有很多其他的公用事业,大部分都是收费的

一旦您了解了如何使用所选实用程序的命令行界面,就可以使用下面的批处理文件来动态构建要合并的文件列表。(此批处理代码未经测试。此概念肯定有效,但可能需要一些调试)

该软件无需编写批处理文件即可进行批处理合并,无需拖放,并且可以自由获取和使用。如预期的那样,将所有批放在同一文件夹中就足够了。但是,您需要具有与批处理中的文件大小成比例的硬件资源

它是一个简单的轻量级“JAR”文件,无需安装在操作系统上即可移植

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

(IMHO)使用现成的软件,您无法合并总大小大于3GB-3.5GB的PDF批处理。

此软件可以进行批处理合并,无需编写批处理文件,也无需拖放,并且可以自由获取和使用。如预期的那样,将所有批放在同一文件夹中就足够了。但是,您需要具有与批处理中的文件大小成比例的硬件资源

它是一个简单的轻量级“JAR”文件,无需安装在操作系统上即可移植

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


(IMHO)使用现成的软件,您无法合并总大小大于3GB-3.5GB的PDF批处理。

批处理文件\VBscript无法合并PDF文件。因此,首先您需要找到一些能够做到这一点的软件,这些软件还具有一个可以从VBS或批处理文件中使用的API。我建议你可以在星期天提出这个要求。当你发现这一点时,你可以在这里寻求帮助,以了解如何编写脚本来自动化处理。我同意@ho1。我不想结束你的问题,但是如果你按照建议,找到适合你用途的软件,然后回来编辑这个脚本问题,那就更好了。我希望情况不是这样。我什么都试过了,每个人都说了同样的话。这是不幸的,因为我知道这对许多公司都是有效的。无论如何,谢谢。批处理文件\VBscript没有合并PDF文件的固有功能。因此,首先您需要找到一些能够做到这一点的软件,这些软件还具有一个可以从VBS或批处理文件中使用的API。我建议你可以在星期天提出这个要求。当你发现这一点时,你可以在这里寻求帮助,以了解如何编写脚本来自动化处理。我同意@ho1。我不想结束你的问题,但是如果你按照建议,找到适合你用途的软件,然后回来编辑这个脚本问题,那就更好了。我希望情况不是这样。我什么都试过了,每个人都说了同样的话。这是不幸的,因为我知道这对许多公司都是有效的。谢谢你。
@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