创建perl脚本以批处理文件

时间:2011-03-18 02:53:05

标签: perl loops batch-file logic

我有这行代码:

convert 1234_Page_1_....png 1234_Page_2_....png output.pdf 

这将这些特定的png合并为单个pdf(使用ImageMagick)。我有一堆这种格式的文件。我想对“ Page ”之前具有相同编号的文件执行此合并/转换为pdf操作。有时候有两个以上的页面需要转换。

我想在我可以在Windows上运行的perl脚本中完成此操作。

提前致谢, 杰克

3 个答案:

答案 0 :(得分:2)

如果您想根据需要多次调用convert(1):

#! /usr/bin/perl

use strict;
use warnings;

my %processed = ();
for my $prefix (map { /^(\d+)/ } glob('[1-9]*_Page_*.png')) {
    next if $processed{$prefix}++;
    system("convert ${prefix}_Page_*.png ${prefix}_output.pdf");
}

答案 1 :(得分:1)

如果您安装了cygwin(也许mingw?),请尝试以下操作:

for i in `seq 1234 1350` ; do convert ${i}_Page_*.png ${i}_output.pdf ; done

答案 2 :(得分:0)

你不能用星号吗?我现在就试试。

convert 1234_Page_*.png output.pdf

如果您想要可读文件,请转到:

import os

for i in xrange(int(raw_input('How many sets of pages are there? '))):
  os.system('convert {0}_Page_*.png output_{0}.pdf'.format(str(i)))

这是一个单行:

python -c "import os; [os.system('convert {0}_Page_*.png output_{0}.pdf'.format(str(i))) for i in xrange(int(raw_input('How many sets of pages are there? ')))]"