batch-file - 将基于文件名的 pdf 与同名子文件夹中的 pdf 合并
问题描述
我正在尝试将基于文件名 (IMG_2.pdf) 的 pdf 与位于与带有填充 (IMG_2.pdfX) 的 pdf 同名的子文件夹中的所有 pdf 结合起来。
子文件夹可以在第一个子文件夹 (22.pdfX) 中包含以 pdf 命名的附加子文件夹(如 22.pdfX),并具有附加的 pdf(如 IMGk.pdf)。
C:。
│ IMG_2.pdf
├───IMG_2.pdfX
│ │ 22.pdf
│ └───22.pdfX⠀
│ IMGk.pdf
这显示了一个 pdf 及其子文件夹的树,有数百个具有这种结构的 PDF。
对于 IMG_2.pdf,输出应该是一个 pdf,它将所有其他 pdf 合并到此文件或新文件中,对于源目录 (pdf) 中的所有其他 pdf,依此类推。
试过 pdftk 但卡住了。欢迎使用 linux 或 windows 上的任何解决方案,windows 更可取。
解决方案
历尽千辛万苦来回答自己
@echo off
rem run cmd with \u -for utf 16
setlocal EnableDelayedExpansion EnableExtensions
SET "SourceParentDir=C:\Export"
set back=%cd%
set "files="
set "originalPDF="
rem loop through subdirectories
for /d %%i in (%SourceParentDir%\*) do (
rem get filepath of master pdf
set "originalPDFpath=%%~i"
set "originalPDFpath=!originalPDFpath:~0,-1!.pdf"
rem get filename of master pdf
set "originalPDF=%%~nxi"
set "originalPDF=!originalPDF:~0,-1!.pdf"
rem traverse subdirectories
cd "%%i"
rem get list of pdf files
(for /R %%a in (*.pdf) do (
set "files=!files! "%%~fa""
)
rem combine pdf files
pdftk "!originalPDFpath!" !files! cat output "c:\test\!originalPDF!"
set "files="
)
)
cd %back%
主要来源:
推荐阅读
- python - 在 discord.py 上为特定人员添加角色
- php - PHP 代码错误。需要使用数组和for循环
- javascript - 对象内的javascript对象
- java - 无法在应用程序中获取我手机的位置
- wireshark - Wireshark,监控某些进程/任务或防止普通数据包被监控
- cmake - 为什么在我已经更新 cmake 版本时 make 命令抱怨 cmake 版本?
- python - TensorFlow 图像字幕/seq2seq 解码器作为模型
- zeromq - zeromq:如何做 REQ-multiple-REP?
- python - JSON格式不正确(scrapy)
- java - 使用套接字通过 Python 将图像文件从 Android 手机发送到 PC