Этот ответ, как и мой последний в вашем предыдущем вопросе (который остается нерешенным) , предполагает, что вы объединяете все .pdf
s в каждом каталоге в один выходной файл.В этом случае выходной файл будет иметь имя Daily Report_mm-DD-YYYY_HH.MM.SS.pdf
и будет записан в относительный каталог с именем Daily Reports For Review
.
@Echo Off
Set "DS="
For /F "Tokens=1-6 Delims=/: " %%A In ('RoboCopy/NJH /L "\|" Null'
) Do If Not Defined DS Set "DS=%%B-%%C-%%A_%%D.%%E.%%F"
If Not Defined DS Exit /B
Set "DN=Daily Reports for Review"
Set "FN=Daily Report"
For %%A In ("C:\Directory1" "C:\Directory2") Do If Not Exist "%%~A\" (
Echo %%~A does not exist) Else (
If Not Exist "%%~A\*.pdf" (Echo No PDF's in %%A) Else Call :Sub "%%~A")
Pause
Exit /B
:Sub
PushD %1
If Not Exist "%DN%\" MD "%DN%"
PDFTk *.pdf cat output "%DN%\%FN%_%DS%.pdf" && Del /Q *.pdf
PopD
Exit /B
Если вы не записываете все .pdf
в каждом каталогев один выходной файл, вам нужно объяснить, что вы делаете, потому что это ваш третий вопрос об этой же задаче, и вы не объяснили эту задачу адекватно .
Предоставлено
Вы можете использовать WMIC
, чтобы сгенерировать свою метку даты, если хотите включить название дня недели в строку.
Для этого замените строки 3
и 4
в приведенном выше скрипте с:
Set "WeekDays=Sun Mon Tue Wed Thu Fri Sat"
For /F %%A In ('WMIC Path Win32_LocalTime Get /Value^|FindStr "[0-9]$"') Do Set "%%A"
For /F "Tokens=1%DayOfWeek%" %%A In (". . . . . . . . . %WeekDays%") Do Set "DayName=%%A"
For %%A In (Day Hour Minute Month Second) Do Call Set "%%A=0%%%%A%%" & Call Set "%%A=%%%%A:~-2%%"
Set "DS=%DayName%_%Month%-%Day%-%Year%_%Hour%.%Minute%.%Second%"