pdftk工具“dump_data”功能可用于提供有关pdf的元信息,包括页数。以下命令......
pdftk test.pdf dump_data | find "NumberOfPages"
...输出完整的数据转储行,例如:
"Number of pages: 32"
如何将计数值(在上述情况下为32)转换为新变量以便在bat文件中进一步处理?
答案 0 :(得分: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 ...
行仅用于测试目的,TYPE testfile
循环的FOR
部分应替换为pdftk test.pdf dump_data
。
答案 1 :(得分: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
)
请注意,如果您在批处理文件中使用它,则必须在上面示例中的每个变量前面使用两个%
。如果直接从控制台运行它,请仅使用一个%
。