Board logo

标题: [文件操作] (已解决)有偿求助,pdf批量重复合并的批处理 [打印本页]

作者: qiqing    时间: 2020-8-28 13:39     标题: (已解决)有偿求助,pdf批量重复合并的批处理

本帖最后由 qiqing 于 2020-8-28 18:48 编辑

可以用pdftk软件,用批处理命令,
例如:a.pdf,b.pdf,c.pdf。。。。。。
合并:a.pdf+a.pdf,b.pdf+b.pdf,c.pdf+c.pdf。。。。。。(重复合并)
结果:a.pdf,b.pdf,c.pdf。。。。。。(合并后文件名不变)
如果不清楚,可以再问我!415235501
作者: zaqmlp    时间: 2020-8-28 13:53

本帖最后由 zaqmlp 于 2020-8-28 15:04 编辑
  1. @echo off
  2. mode con lines=3000
  3. cd /d "%~dp0"
  4. set "exefile=pdftk.exe"
  5. set "oldfolder=合并前"
  6. set "newfolder=合并后"
  7. if not exist "%exefile%" (echo;"%exefile%" not found&pause&exit)
  8. if not exist "%oldfolder%" (echo;"%oldfolder%" not found&pause&exit)
  9. if not exist "%newfolder%" md "%newfolder%"
  10. for /f "delims=" %%a in ('dir /a-d/b "%oldfolder%\*.pdf"') do (
  11.     echo;"%%a"
  12.     "%exefile%" "%oldfolder%\%%~nxa" "%oldfolder%\%%~nxa" cat output "%newfolder%\%%~nxa"
  13. )
  14. pause
  15. exit
复制代码

作者: qiqing    时间: 2020-8-28 14:15

回复 2# zaqmlp


    非常感谢,从你头像,给你20块钱红包
作者: qiqing    时间: 2020-8-28 14:49

回复 2# zaqmlp


    麻烦帮我修改一下,就上面的,待合并文档a.pdf,b.pdf,c.pdf。。。。。。放置文件夹“合并前”,而合并后文档,放置文件夹“合并后”
作者: Batcher    时间: 2020-8-28 15:02

回复 4# qiqing
  1. @echo off
  2. cd /d "%~dp0"
  3. set "exefile=pdftk.exe"
  4. if not exist "%exefile%" (echo;"%exefile%" not found&pause&exit)
  5. md "合并后" 2>nul
  6. for /f "delims=" %%a in ('dir /a-d /b "合并前\*.pdf"') do (
  7.     echo;"合并前\%%a"
  8.     "%exefile%" "合并前\%%a" "合并前\%%a" cat output "合并后\%%~nxa"
  9. )
复制代码

作者: qiqing    时间: 2020-8-28 15:15

回复 5# Batcher


感谢,麻烦再帮我写一个
例如
合并前:a.pdf,b.pdf,c.pdf。。。。。。
随机:1.pdf,2.pdf,3.pdf。。。。。。(文件夹“随机”,随机抽取里面的文档进行合并,)
合并后:a.pdf+2.pdf,b.pdf+3.pdf,c.pdf+1.pdf。。。。。。(合并后的文件名,保持与合并前的文件名不变)
作者: qiqing    时间: 2020-8-28 17:54

回复 2# zaqmlp


    感谢,麻烦再帮我写一个,完了再给你个红包
例如
合并前:a.pdf,b.pdf,c.pdf。。。。。。
随机:1.pdf,2.pdf,3.pdf。。。。。。(文件夹“随机”,随机抽取里面的文档进行合并,)
合并后:a.pdf+2.pdf,b.pdf+3.pdf,c.pdf+1.pdf。。。。。。(合并后的文件名,保持与合并前的文件名不变)
作者: zaqmlp    时间: 2020-8-28 18:14

回复 7# qiqing
  1. @echo off
  2. mode con lines=3000
  3. cd /d "%~dp0"
  4. set "exefile=pdftk.exe"
  5. set "oldfolder1=合并前"
  6. set "oldfolder2=随机"
  7. set "newfolder=合并后"
  8. if not exist "%exefile%" (echo;"%exefile%" not found&pause&exit)
  9. if not exist "%oldfolder1%" (echo;"%oldfolder1%" not found&pause&exit)
  10. if not exist "%oldfolder2%" (echo;"%oldfolder2%" not found&pause&exit)
  11. if not exist "%newfolder%" md "%newfolder%"
  12. for /f "tokens=1* delims=:" %%a in ('dir /a-d/b "%oldfolder2%\*.pdf"^|findstr /n .*') do (
  13.     set "#%%a=%%b"
  14.     set n=%%a
  15. )
  16. setlocal enabledelayedexpansion
  17. for /f "delims=" %%a in ('dir /a-d/b "%oldfolder1%\*.pdf"') do (
  18.     set /a "r=!random! %% n+1"
  19.     for /f %%b in ("!r!") do (
  20.         echo;"%oldfolder1%\%%~nxa"+"%oldfolder2%\!#%%b!"
  21.         "%exefile%" "%oldfolder1%\%%~nxa" "%oldfolder2%\!#%%b!" cat output "%newfolder%\%%~nxa"
  22.     )
  23. )
  24. pause
  25. exit
复制代码

作者: qiqing    时间: 2020-8-28 18:47

回复 8# zaqmlp


    OK,支付宝给了红包




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2