Вы можете создать список ваших файлов PDF, упорядоченный по дате создания:
dir /b /tc /od *.pdf > my-pdf-filelist.txt
(Если вам нужен список - вместо сортировки по времени создания - сортировка по времени доступа использует ' /ta
' вместо ' /tc
'; если вы хотите упорядочить по времени изменения, используйте ' /tw
'.)
Затем используйте этот список, чтобы создать еще один временный файл списка, который содержит временную метку и имена файлов PDF с добавленными датами + временем в той же строке:
for /f "usebackq" %i in (my-pdf-filelist.txt) ^
do (echo. %~ti %~nxi >> my-pdf-filelist.2)
Теперь проверьте, содержит ли ваш список файлов my-pdf-filelist.2
строки, выглядящие так:
05/27/2009 06:08 AM fontproblems-in-footer-16_9_1557.pdf
01/20/2010 09:22 AM trainschedule-hannover.pdf
06/05/2010 07:30 PM Figure_001-a.pdf
В зависимости от настройки вашего языка + локали формат вашей временной метки может отличаться, и вам может потребоваться адаптировать следующий шаг. В моем случае мне нужно позаботиться о веще «AM /PM», а также о строке даты, чтобы убедиться, что имена файлов будут действительно в алфавитном порядке, который совпадает с порядком их меток времени.
Наконец, используйте этот временный список файлов, чтобы переименовать ваши исходные имена файлов, чтобы они содержали свои метки времени в качестве префикса к своим исходным именам. Но сначала протестируйте предполагаемую команду следующим образом:
for /f "usebackq tokens=1,2,3,4,5,6,7 delims=/: " %i in (my-pdf-filelist.2) ^
do (echo. "%o" will be renamed to: "%k-%j-%i-%n-%l-%m-%o")
Тщательно проверьте, будет ли это работать как задумано. Наконец, сделайте реальное переименование:
for /f "usebackq tokens=1,2,3,4,5,6,7 delims=/: " %i in (my-pdf-filelist.2) ^
do (ren "%o" "%k-%j-%i-%n-%l-%m-%o")
Теперь, когда ваши PDF-файлы названы так, что они имеют «буквенный порядок» == «порядок отметок времени», вы можете просто запустить pdftk.exe
pdftk.exe *.pdf cat output merged.pdf