Я в настоящее время получаю электронные письма для билетов и ответов.Они автоматически отправляются в папки в формате PDF.Я создаю обложки для них.Так важно три раздела, которые в конечном итоге станут одним большим pdf (обложка, тикет и ответ).Номера билетов состоят из 14 цифр, и обычно электронные письма содержат этот номер билета где-то в строке темы (который является заголовком в формате pdf).Поэтому я использую BulkRenameUtility и Regex, чтобы переименовать каждый билет в 14-значный номер билета, с «-Ticket» после него.Все ответы затем получают имена с 14-значным номером билета, с префиксом 2 (так что pdftk объединяет его последним), и, если есть несколько ответов, последовательно нумеруются.Все обложки автоматически генерируются с помощью «10A-», затем 14-значный номер билета, затем номер задания.Номера билетов имеют формат YYMMDDHHNN ####.Так что pdftk компилирует их как Cover, ticket, затем response.Но прежде чем pdftk может объединить 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
Прямо сейчася обрезал / вставил папки и нажал OK во всплывающем окне слияния в проводнике Windows.Но я должен научить весь процесс другому человеку на следующей неделе, и я хотел бы упростить его.После слияния всех моих папок я запускаю скрипт powershell с PDFTK, чтобы объединить файлы pdf и сохранить их в родительской папке.
Я действительно мог бы использовать некоторую помощь для получения подпапок Обложки, Ответы и Билеты наПерейдите в папку Complete, объединив повторяющиеся имена папок, чтобы создать одну папку со всеми моими файлами для каждого номера заявки, чтобы я мог запустить следующий скрипт 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.