我需要一些帮助。我目前正在做一个批处理程序,它执行以下操作:
在 \Reports\ 文件夹中存储了几个文本文件。例如,
A_000100.txt、A_000200.txt、B_000100.txt、B_000200.txt、C_000100.txt、C_000200.txt、D_000100.txt、D_000200.txt、E_000100.txt、E_000200.txt、F_000100.txt、F_002
- 所有文本文件都必须使用命令行单独转换为 PDF。为了解决这个问题,我安装了“AdultPDF Txt to PDF converter”程序。它具有命令行功能,可将文本文件转换为具有不同参数的 PDF。下面一行显示了如何将文本文件转换为 PDF。在下面的示例代码中,输出 PDF 文件的纸张设置为字母大小 (-pps4),字体大小为 10.9 (-pfs10.9)。
TXTtoPDF A_000100.txt A_000100.pdf -pps4 -pfs10.9
将每个文本文件单独转换为 PDF 后,应将文件名最后 6 个字符相同的 PDF 文件(例如 A_000100.pdf、B_000100.pdf、C_000100.pdf 等)合并为一个 PDF,并将输出文件名将为 R_000100.pdf。输出的 PDF 文件将存储在同一文件夹中。
合并后的 PDF 文件(例如 R_000100.pdf)必须使用密码加密,但应该是随机生成的。但是每个合并的 PDF 文件的密码应该彼此不同。
- 为了解决第 2 和第 3 项问题,我安装了程序 PDFTK(或 PDF ToolKit)。它具有命令行功能,可以将具有不同参数的 PDF 文件组合在一起,包括将密码添加到 PDF 文件中。下面一行显示了如何将多个 PDF 文件合并为一个,并在 PDF 文件中添加随机密码。
pdftk *%%i.pdf cat output R_%%i.pdf owner_pw %random%
- 最后,应创建一个日志文件 (.CSV),其中将列出组合 PDF 文件的文件名以及每个 PDF 文件随机生成的密码。下面是我用来执行此操作的代码:
echo %%i R_%%i.pdf %random% >> passwords.csv
实际上,随机密码的生成并将它们存储到 CSV 文件中是我遇到问题的地方。它似乎不起作用。我不知道如何正确地做到这一点。任何精通批处理编程的人都可以帮助我吗?下面是我迄今为止完成的完整批处理程序。如果需要对我的程序进行一些更正以使其更简单,请毫不犹豫地进行更正。对你的帮助表示感谢。谢谢!
@echo off
for /f "tokens=1,2 delims=ABCDEF_." %%i in ('dir *.txt *.pdf /b') do (
TXTtoPDF A_%%i.txt A_%%i.pdf -pps4 -pfs10.9
TXTtoPDF B_%%i.txt B_%%i.pdf -pps4 -pfs8.9
TXTtoPDF C_%%i.txt C_%%i.pdf -pps4 -plm50 -prm50 -pfs7.9
TXTtoPDF D_%%i.txt D_%%i.pdf -pps4 -plm60 -prm60 -pfs8.9
TXTtoPDF E_%%i.txt E_%%i.pdf -pps5 -pot -pfs10
TXTtoPDF F_%%i.txt F_%%i.pdf -pps5 -pot -pfs12
pdftk *%%i.pdf cat output PDF\R_%%i.pdf owner_pw %random%
echo %%i R_%%i.pdf %random% >> passwords.csv
)
echo ***************************************************
echo * *
echo * PDF REPORTS SUCCESSFULLY GENERATED. *
echo * PLEASE TYPE EXIT AT COMMAND PROMPT. *
echo * *
echo ***************************************************
pause
exit