|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Печать pdf-файлов из командной строки. |
|
CMD/BAT - [решено] Печать pdf-файлов из командной строки.
|
Экзорцист Сообщения: 969 |
Начало здесь
В определенный каталог пользователь выкладывает pdf-файлы. Надо в автоматическом режиме их печатать из командной строки (скриптом в шедулере) Можно сделать так: Но после печати процесс Adobe Acrobat Reader не завершается, соответственно батник "замирает". Решил переносить файлы в подкаталог и оттуда их печатать, а удалять другим скриптом (где-нибудь в автозагрузке). Проблема в том, что файлы могут быть до 50Мб и, чисто теоретически, процесс переноса может быть запущен в том момент, когда копирование в подкаталог еще не завершилось. Поэтому файл переименовываю в каталоге, проверяю на ошибку переименования (файл "занят"), потом переношу и из подкаталога печатаю. Получилось следующим образом: echo off Setlocal EnableDelayedExpansion rem имя файла для печати set FileNameForPrint=0 rem каталог, в который пользователь помещает файлы set DirNameForPrint=d:\printer\ rem каталог, куда перемещается файл, который надо распечатать и удалить, является подкаталогом для DirNameForPrint set DirNameForDel=d:\printer\del\ cd /d %DirNameForPrint% FOR %%i IN (*.pdf) DO ( set FileNameForPrint="%%~ni__!random!".pdf rename "!DirNameForPrint!%%i" "!FileNameForPrint!" if %ERRORLEVEL% EQU 0 ( move /y "!DirNameForPrint!!FileNameForPrint!" "!DirNameForDel!" !ProgramFiles!\print_job\nircmd.exe shexec "print" "!DirNameForDel!!FileNameForPrint!" ) ) Так же в шедулере скрипт очистки подкаталога с запуском при включении компьютера Имеет право на жизнь? Пока вроде работает. P.S. странно, но справка по if (if /?) выдает, что для сравнения нужна команда EQL, хотя по факту - EQU |
|
Отправлено: 11:46, 01-02-2019 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Michael:
Цитата Michael:
|
||
Отправлено: 12:35, 01-02-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Экзорцист Сообщения: 969
|
Профиль | Отправить PM | Цитировать Iska, не, пожалуй буду решать проблемы по мере их поступления. Но за ссылку спасибо
|
Отправлено: 13:07, 01-02-2019 | #3 |
Ветеран Сообщения: 2732
|
Профиль | Отправить PM | Цитировать Michael,
Вот вариант, вроде бы хватает одного батника
@Echo Off
cls
Set "BoxIn=Z:\Box_In"
Set "Mask=*.pdf"
Set /A Repeat=60
Set /A Waiting=30
Set "PRG="c:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" /n /t"
rem Set "PRG="C:\Program Files\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /n /t"
:Begin
If Not Exist "%BoxIn%\Tmp" Md "%BoxIn%\Tmp"
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /b /a:-D "%BoxIn%\%Mask%"`) DO (
Move /Y "%BoxIn%\%%f" "%BoxIn%\Tmp\%%f" >NUL &&Call :Out "%BoxIn%\Tmp\%%f" %Waiting%
)
Timeout /T %Repeat%
rem CHOICE /C YN /T %Repeat% /D Y /M "Y-Продолжить работу, N-Завершить командный файл"
rem If %ErrorLevel%==2 Exit /B 2
GoTo :Begin
Exit /B
:Out
Start " " %PRG% %1
:OutWait
Timeout /T %2
Del %1 >nul 2>&1
If Exist %1 GoTo :OutWait
Exit /B
Цитата Michael:
|
|
------- Отправлено: 17:46, 01-02-2019 | #4 |
Ветеран Сообщения: 2732
|
Профиль | Отправить PM | Цитировать Michael, простите великодушно за неуместное любопытство: а зачем вообще эта возня, если файлы печатаете в автоматическом режиме? Почему сразу не поставить пользователям сетевой принтер и акробат? Имхо, акробат, или нечто подобное, должен присутствовать у каждого. По крайней мере, у тех пользователей, которым приходится в конечном итоге отправлять pdf на печать.
|
|
------- Отправлено: 12:11, 02-02-2019 | #5 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать megaloman, пользователь может на удалёке/ в филиале за 1000 км формировать документы. А местный персонал на них только печать ставит.
|
Отправлено: 14:57, 02-02-2019 | #6 |
Экзорцист Сообщения: 969
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Есть старенькая тошиба, которую не удалось подцепить на сервер печати под управлением windows server 2008R2, но, во-первых, выкидывать ее жалко, во-вторых - файлы на печать изначально формируются в pdf-формате. Решил заморочиться |
|
Отправлено: 10:18, 06-02-2019 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доступ - [решено] Запуск командной строки от имени Администратора из командной строки | emcee | Microsoft Windows 8 и 8.1 | 12 | 06-05-2023 07:36 | |
2007 - [решено] Печать из командной строки. | valcher | Microsoft Office (Word, Excel, Outlook и т.д.) | 4 | 11-08-2018 17:55 | |
CMD/BAT - запуск командной строки от имени администратора из командной строки | jah | Скриптовые языки администрирования Windows | 18 | 19-09-2015 08:59 | |
Создание .torrent-файлов из командной строки | D_Master | Хочу все знать | 7 | 18-02-2009 23:20 | |
Печать файлов из командной строки | Loki3D | Microsoft Windows NT/2000/2003 | 4 | 12-07-2007 08:55 |
|