使用批处理脚本将单页 tiff 合并为多页 tiff

Combine single page tiffs into multipage tiff using a batch script

我有一台只能扫描单页 tiff 的文档扫描仪,我需要将它们合并成多页 tiff。我知道 Irfanview 可以做到这一点,但我对其他选择持开放态度。

输入,C:\Scans

20161001115151800_0001.tif
20161001115151800_0002.tif
...
up to
...
20161001115151800_0021.tif

...和...:

20161002130918260_0001.tif
20161002130918260_0002.tif
...
up to
...
20161002130918260_0025.tif

期望的输出,C:\Output

20161001115151800.tif
20161002130918260.tif

我正在寻找类似于 Bulk Combine TIFFs Based on Common File Name Using Irfanview and ImageMagick: how to batch combine multiple TIFF file to a single TIFF file in a directory? 的解决方案,但是我不知道如何使用我的文件结构将第一个解决方案实现为批处理文件,而第二个解决方案使用我无法生成的顺序文件名。

非常感谢任何帮助!

IrfanView 的程序文件文件夹中有文本文件 i_options.txt 列出并解释了可用的命令行选项。此文件中还包含创建多页 TIFF 文件的示例。

我建议在下面的批处理代码中的 IrfanView 命令行中的 /cmdexit 之后另外使用选项 /tifc=X 来定义要用于的压缩多页 TIFF 文件。

@echo off
if not exist "C:\Output\" md "C:\Output"
for %%I in ("C:\Scans\*_*.tif") do (
    for /F "delims=_" %%J in ("%%~nI") do (
        if not exist "C:\Output\%%J.tif" (
            "%ProgramFiles(x86)%\IrfanView\i_view32.exe" /cmdexit "/multitif=(C:\Output\%%J.tif,C:\Scans\%%J_*.tif)"
        )
    )
)

/multitif 选项用双引号括起来,以避免需要转义括号并将整个选项作为一个参数字符串传递给 IrfanView,即使当前文件的名称包含 space 字符或通常需要使用双引号括起来的其他字符。 运行 在命令提示符 window cmd /? 中并至少阅读最后一页输出帮助中关于双引号用法的最后一段。

要了解使用的命令及其工作原理,请打开命令提示符 window,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。

  • echo /?
  • for /?
  • if /?
  • md /?