Моя проблема заключается в том, чтобы загрузить pdf-файлы и отправить их всем на принтер.Batch Print - Batch Script - findstr condition for for loop
загрузить через FTP правильно и все файлы идут в мой локальный каталог:
File Name = 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-файлов только один раз?
Благодаря
Провел некоторое время с этим циклом и не знал, что происходит. Это точно зафиксировало мою ошибку. Спасибо за помощь Аачини. – Alex