是否可以过滤出文件夹中包含30页以上的所有pds 像qpdf --pages * .pdf 当文档超过30页时,仅提取第一页和最后一页,并使用bevore创建的pdf的第一和最后一个站点生成新的pdf?
答案 0 :(得分:0)
根据manual,DENSE_RANK
用于计数页数,仅输出数字。使用--show-npages
循环将其捕获到变量中。放置另一个for /f
来处理每个PDF:
for
(完全未经测试,因为我只知道@echo off
for %%F in (*.pdf) do (
for /f %%A in ('qpdf --show-npages "%%f"`) do (
if %%A gtr 30 (
qpdf "%%F" --pages 1,r1 -- "%%~dpnF-firstlast.%%~xF"
)
)
)
是手册)
答案 1 :(得分:0)
这是仅使用qpdf的经过测试的蝙蝠...
这需要var中
qpdf
的完整路径:set _qpdf
如果页面> 30,则连接第一个和最后一个:
@echo off && setlocal enabledelayedexpansion
set _qpdf=.\qpdf\bin\qpdf.exe
for %%a in (*.pdf) do set "_pdf=%%~fa"&& @call :_merge
if exist "*.t_m_p" for %%i in (*.t_m_p) do ren "%%~fi" "%%~ni.pdf"
goto :eof
:_merge
for /f "tokens=*" %%Z in ('!_qpdf! --show-npages "!_pdf!"') do (
if %%Z gtr 30 !_qpdf! "!_pdf!" --pages "!_pdf!" 1-1 "!_pdf!" %%Z-%%Z -- "%%~na_01_%%~Z.t_m_p"
set _pdf=0<nul & exit /b
)
:: Download qpdf :: | :: Manual qpdf ::
外观好,很抱歉我的英语有限!!