使用批处理脚本

时间:2016-10-04 22:18:00

标签: batch-file imagemagick batch-processing tiff irfanview

我有一个文件扫描程序只能扫描单页tiffs,我需要将它们组合成多页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 IrfanviewImageMagick: how to batch combine multiple TIFF file to a single TIFF file in a directory?的解决方案但是我无法弄清楚如何使用我的文件结构将第一个解决方案实现为批处理文件,第二个解决方案使用顺序文件名无法生产。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

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

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

@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 ,即使当前文件的名称包含空格字符或其他字符,通常需要使用周围的双引号。在命令提示符窗口cmd /?中运行,并在输出帮助的最后一页上至少阅读有关双引号用法的最后一段。

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

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