我目前收到门票和回复的电子邮件。它们会自动以pdf格式发送到文件夹中。我为他们创建封面。因此,重要的三个部分最终将成为一个大pdf(封面、门票和回复)。
票号为14位数字,通常电子邮件的主题行(即pdf标题)某处包含该票号。因此,我使用BulkRenameUtility和Regex将每张票重命名为14位数的票号,后面加“-ticket”。然后将所有响应命名为14位票号,前缀为2(以便pdftk最后合并),如果有多个响应,则按顺序编号。所有封面都会自动生成“10A-”,然后是14位的票号,然后是作业号。票号的格式为YYMMDDHHNN#####。这使得pdftk将其编译为封面、票证,然后是响应。
但在pdftk将PDF合并为一个PDF之前。我需要它们在同一个文件夹中。我使用一个批处理脚本将所有封面排序到一个文件夹中,文件夹名为14位票证名称,回复和票证也是如此。因此,我最终得到了(取决于门票数量,现在我有96个)许多这样的子文件夹。
.....OpenLocates
..........Current
...............Complete
....................[EMPTY]
...............Covers #There will be one cover per job.
....................18051400000001
.........................10A-18051400000001_218001.pdf
....................18051400000002
.........................10A-18051400000002_217022.pdf
...............Responses #There will be multiple responses per ticket.
....................18051400000001
.........................218051400000001.pdf
.........................218051400000001_1.pdf
.........................218051400000001_2.pdf
....................18051400000002
.........................218051400000002.pdf
.........................218051400000002_1.pdf
.........................218051400000002_2.pdf
...............Tickets #There *can* be multiple tickets per job.
....................18051400000001
.........................18051400000001-Ticket.pdf
....................18051400000002
.........................18051400000002-Ticket.pdf
我需要的是将所有这些子文件夹合并为一个。不应该有重复的文件名,因为BRU在重命名pdf文件时会按顺序对重复的文件进行编号。
.....OpenLocates
..........Current
...............Complete
....................18051400000001
.........................10A-18051400000001_218001.pdf
.........................18051400000001-Ticket.pdf
.........................218051400000001.pdf
.........................218051400000001_1.pdf
.........................218051400000001_2.pdf
....................18051400000002
.........................10A-18051400000002_217022.pdf
.........................18051400000002-Ticket.pdf
.........................218051400000002.pdf
.........................218051400000002_1.pdf
.........................218051400000002_2.pdf
批处理脚本如下:
@echo on
::CALLALL
Call :SortCovers
Call :SortResponses
Call :SortTickets
goto :EOF
:SortCovers
cd L:\OpenLocates\Current\Covers
for /f %%a in ('dir /a-d /b') do (
if not "%%~dpnxa"=="%~dpnx0" call :SortCoversFunction "%%~a"
)
goto :EOF
:SortCoversFunction
set file=%~1
set dir=%file:~4,14%
md "%dir%" 2>nul
move "%file%" "%dir%"
goto :EOF
:SortResponses
cd L:\OpenLocates\Current\Responses
for /f %%a in ('dir /a-d /b') do (
if not "%%~dpnxa"=="%~dpnx0" call :SortResponsesFunction "%%~a"
)
goto :EOF
:SortResponsesFunction
set file=%~1
set dir=%file:~1,14%
md "%dir%" 2>nul
move "%file%" "%dir%"
goto :EOF
:SortTickets
cd L:\OpenLocates\Current\Tickets
for /f %%a in ('dir /a-d /b') do (
if not "%%~dpnxa"=="%~dpnx0" call :SortTicketsFunction "%%~a"
)
goto :EOF
:SortTicketsFunction
set file=%~1
set dir=%file:~0,14%
md "%dir%" 2>nul
move "%file%" "%dir%"
goto :EOF
现在,我正在剪切/粘贴文件夹,并在windows资源管理器中的“合并”弹出窗口上单击“确定”。
但下周我必须把我的整个过程教给另一个人,我想简化一下。
合并所有文件夹后,我会使用PDFTK运行powershell脚本来合并pdf文件并将其保存在父文件夹中。
我真的需要一些帮助才能将封面、回复和票据的子文件夹移出到完整的文件夹中,合并重复的文件夹名,为每个票据编号创建一个包含我所有文件的文件夹,这样我就可以运行以下powershell脚本,并以正确的顺序成功地将它们合并。
$pdftk = "C:\SymLinks\Combine\pdftk.exe"
$inputFolder = "L:\OpenLocates\Current\Complete"
gci $inputfolder -r -include *.pdf | sort-object | group DirectoryName | % {& $PDFtk $_.group CAT OUTPUT "$($_.Name | Split-Path -Parent)\$($_.Name | Split-Path -Leaf).pdf" verbose}
任何帮助都将不胜感激。我尝试了几种不同的批处理和powershell脚本,但似乎没有一种适合我。
编辑:在合并PDF之前,我会将一份工作的所有票证号码合并到一个文件夹中。在合并最终PDF之前,所有文件夹也将重命名为作业名称。