我再次需要一些帮助。我目前正在做一个批处理程序,它执行以下操作:
在 \Reports\ 文件夹中存储了几个文本文件。例子,
- A_000001.txt - A_000002.txt - B_000001.txt - B_000002.txt - C_000001.txt - C_000002.txt - D_000001.txt - D_000002.txt - E_000001.txt - E_000002.txt - F_000001.txt - F_000002.txt
批处理程序使用“AdultPDF Txt to PDF converter”命令行功能将所有文本文件单独转换为PDF。
文件名最后 6 个字符相同的转换后的 PDF 文件(例如
A_000001.pdf
,...F_000001.pdf
)被组合成一个 PDF,然后给出输出文件名R_000001.pdf
。合并的 PDF 文件存储在\Reports\PDF Reports\
文件夹中。在我的批处理程序中我想做的最后一件事是为组合的 PDF 文件分配一个密码。密码将来自
passwords.csv
包含以下列的 csv 文件 ( ):
组合 PDF 的文件名,PDF 的密码
例如:
- R_000001.pdf,abcd1234 - R_000002.pdf,efgh5678 - R_000003.pdf,ijkl0910
为了解决第 2 和第 3 项,我安装了程序 PDFTK(或 PDF ToolKit)。它具有命令行功能,可以将具有不同参数的 PDF 文件组合在一起,包括将密码添加到 PDF 文件中。下面是我的批处理程序中的一行,它显示了如何将多个 PDF 文件合并为一个,并将密码添加到 PDF 文件中。
pdftk *%%j.pdf cat output "PDF Reports\R_%%j.pdf" user_pw abcd1234
我想知道我将如何做到这一点,例如,如果组合 PDF 的文件名是 R_000002.pdf,批处理程序将查看 passwords.csv 中列出的文件名,如果找到匹配的文件名,则密码旁边它(即 efgh5678)将分配给组合的 PDF。
下面是我迄今为止完成的完整批处理程序。任何帮助将不胜感激。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET prevsuff=::
for /f "tokens=1,2 delims=_." %%i in ('dir ?_*.txt /b ^|sort /+2') do IF NOT !prevsuff!==%%j (
SET prevsuff=%%j
IF EXIST A_%%j.txt TXTtoPDF A_%%j.txt A_%%j.pdf -pps4 -pfs10.9
IF EXIST B_%%j.txt TXTtoPDF B_%%j.txt B_%%j.pdf -pps4 -pfs8.9
IF EXIST C_%%j.txt TXTtoPDF C_%%j.txt C_%%j.pdf -pps4 -plm50 -prm50 -pfs7.9
IF EXIST D_%%j.txt TXTtoPDF D_%%j.txt D_%%j.pdf -pps4 -plm60 -prm60 -pfs8.9
IF EXIST E_%%j.txt TXTtoPDF E_%%j.txt E_%%j.pdf -pps5 -pot -pfs10
IF EXIST F_%%j.txt TXTtoPDF F_%%j.txt F_%%j.pdf -pps5 -pot -pfs12
pdftk *%%j.pdf cat output "PDF Reports\R_%%j.pdf" user_pw abcd1234
)