1

pdftk 工具“dump_data”功能可用于传递有关 pdf 的元信息,包括页数。以下命令...

pdftk test.pdf dump_data | find "NumberOfPages"

...输出完整的数据转储行,例如:

"Number of pages: 32"

如何将计数值(在上述情况下为 32)放入一个新变量中,以便在 bat 文件中进一步处理?

4

2 回答 2

3

如果该行的格式是固定的并且与您显示的格式相匹配,您可以尝试这样的事情:

@ECHO OFF
>testfile ECHO Number of pages: 32
FOR /F "delims=: tokens=2" %%A IN ('TYPE testfile ^| FIND "Number of pages"') DO SET /A pagenum=%%A
ECHO %pagenum%

输出:

32

当然,>testfile ECHO ...line 仅用于测试目的,循环的TYPE testfile部分FOR应替换为您的pdftk test.pdf dump_data.

于 2012-02-24T15:32:27.767 回答
2

试试这个:

FOR /F "usebackq delims=" %%v IN (`pdftk test.pdf dump_data ^| find "Number of pages"`) DO (
    FOR /F "delims=: tokens=1,2" %%i IN ("%%v") DO set NBPAGES=%%j
)

请注意,%如果您在批处理文件中使用它,则必须在上述示例中的每个变量前面使用两个。如果您直接从控制台运行它,请仅使用一个%.

于 2012-02-24T15:32:16.070 回答