Моя проблема заключается в том, чтобы загрузить PDF-файлы и отправить их все на принтер.
Я загружаю через ftp правильно, и все файлы попадают в мой локальный каталог:
Имя файла = FtpScript.ftp
open ftp.domain.com
username
password
!:--- FTP commands below here ---
lcd local/Directory
cd /remote/Directory
binary
mget "*.pdf"
prompt
disconnect
quit
Затем этот пакетный файл вызывает скрипт ftp.
Имя файла = retrieve_print.bat
@ftp -i -s:"C:\Scripts\FtpScript.ftp"
set mm=%date:~4,2%
set dd=%date:~7,2%
set yy=%date:~-4%
IF NOT EXIST {C:\Users\print_test2\print_%mm%_%yy%}( mkdir C:\Users\print_test2\print_%mm%_%yy% )
IF NOT EXIST C:\Users\print_test2\print_%mm%_%yy%\uploaded_%mm%_%dd%_%yy%.txt (
@echo Uploaded Text -- Date: %date% Time : %time% >> C:\Users\print_test2\print_%mm%_%yy%\uploaded_%mm%_%dd%_%yy%.txt
)
IF NOT EXIST C:\Users\print_test2\print_%mm%_%yy%\printed_%mm%_%dd%_%yy%.txt (
@echo Printed Text -- Date: %date% Time : %time% >> C:\Users\print_test2\print_%mm%_%yy%\printed_%mm%_%dd%_%yy%.txt
)
REM LOOP THROUGH PDFs THAT WERE UPLOADED AND INSERT THE NAMES INTO THE UPLOADED_*_*.txt TEXT FILE
FOR %%x in ( C:\Users\print_test2\print_%mm%_%yy%\*.pdf ) DO (
findstr "%%~nxx" C:\Users\print_test2\print_%mm%_%yy%\uploaded_%mm%_%dd%_%yy%.txt
@ECHO Error level = %errorlevel%
@ECHO %%~nxx
@pause
IF NOT %errorlevel% == 0 (
@echo %%~nxx >> C:\Users\print_test2\print_%mm%_%yy%\uploaded_%mm%_%dd%_%yy%.txt
)
)
REM LOOP THROUGH PDFs THAT WERE UPLOADED AND PRINT THEM, THEN INSERT THEM INTO THE PRINTED_*_*.txt TEXT FILE TO SUPPRESS DUPLICATE PRINTS
FOR %%x in ( C:\Users\print_test2\print_%mm%_%yy%\*.pdf ) DO (
findstr "%%~nxx" C:\Users\print_test2\print_%mm%_%yy%\printed_%mm%_%dd%_%yy%.txt
@ECHO Error level = %errorlevel%
@ECHO %%~nxx
IF NOT %errorlevel% == 0 (
rem PRINT FUNCTION
@echo %%~nxx >> C:\Users\print_test2\print_%mm%_%yy%\printed_%mm%_%dd%_%yy%.txt
)
)
Текстовые файлы генерируются неправильно.Я думаю, что я мог бы перебрать файлы, доступные в каталоге print_test2 / print_% mm% _% yy% для всех файлов, которые я получил через ftp, и записать их в текстовый файл.
Проблема становится очевидной, когда я пытаюсь запустить сценарий второй раз, когда в текстовых файлах есть имена файлов.Я ожидаю, что функция findstr выдаст% errorlevel% от 0, но она не обнаруживает строку в текстовом файле и снова добавляет все имена файлов как в загруженные, так и в печатные текстовые файлы.
Есть ли лучший способ регистрации полученных файлов и печати PDF-файлов только один раз?
Спасибо