但是我仍然对我之前发布的程序有疑问。我认为我的 for 循环语句存在问题,因为在打开文件“passwords.csv”后,我注意到循环重复了 5 次。
第一条记录 R_000100.pdf 最初分配了密码 8337,但在其他行中重复并重新分配了其他随机密码。当我试图打开 PDF 文件时,似乎分配的最后一个随机密码(即 13429)实际上是它的密码,而不是 8337。
我应该怎么做才能更正程序,其中在所有 PDF 文件合并并分配密码后,程序已经停止循环并退出?因此,输出文件“passwords.csv”中只有一个条目,不会重复 5 次。
下面是我在 Peter Wright 的帮助下完成的完整批处理程序。
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
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
set pass=!random!
pdftk *%%i.pdf cat output PDF\R_%%i.pdf user_pw !pass!
echo %%i R_%%i.pdf !pass! >> passwords.csv
)
echo ***************************************************
echo * *
echo * PDF REPORTS SUCCESSFULLY GENERATED. *
echo * PLEASE TYPE EXIT AT COMMAND PROMPT. *
echo * *
echo ***************************************************
pause
exit