Предупреждение о пути к пакетным файлам - PullRequest
0 голосов
/ 25 августа 2018

Я написал скрипт ниже для работы в сочетании с pdftk.Он будет просматривать несколько каталогов и, если есть какие-либо файлы PDF, объединит их, удалит оригиналы, создаст папку и переместит их в эту папку.У меня вопрос: есть ли способ, что если один или несколько каталогов не существует, будет сгенерировано предупреждение о том, что каталог отсутствует?

@echo off
Pushd c:\Directory1
 pdftk *.pdf cat output %fn%.pdf
 ren %fn%.pdf %fn%.xxx
 del *.pdf
 ren %fn%.xxx   "Daily Report".pdf
 for /f "tokens=1-3 delims=/" %%a in ('echo %date%') do set Date=%%a-%%b-%%c
 for %%f in (*.pdf) do ren "%%f" "%%~nf_%Date%_%time:~0,2%.%time:~3,2%.%time:~6,2%%%~xf"
 mkdir "Daily Reports for Review"
 move *.pdf "Daily Reports for Review"

Pushd c:\Directory2
 pdftk *.pdf cat output %fn%.pdf
 ren %fn%.pdf %fn%.xxx
 del *.pdf
 ren %fn%.xxx   "Daily Report".pdf
 for /f "tokens=1-3 delims=/" %%a in ('echo %date%') do set today=%%a-%%b-%%c
 for %%f in (*.pdf) do ren "%%f" "%%~nf_%Date%_%time:~0,2%.%time:~3,2%.%time:~6,2%%%~xf"
 mkdir "Daily Reports for Review"
 move *.pdf "Daily Reports for Review"

1 Ответ

0 голосов
/ 25 августа 2018

Этот ответ, как и мой последний в вашем предыдущем вопросе (который остается нерешенным) , предполагает, что вы объединяете все .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%"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...