|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Печать всех файлов pdf, doc, docx, xls, xlsx из папки |
|
|
CMD/BAT - Печать всех файлов pdf, doc, docx, xls, xlsx из папки
|
|
Старожил Сообщения: 345 |
Приветствую.
Ни у кого в загашнике нет готового bat или cmd с печатью в фоне (без открытия окон) всех файлов pdf, doc, docx, xls, xlsx из папки, в которой bat или cmd помещен? Может есть аналог приложения 2printer не требующий установки? Или может еще как? |
|
|
Отправлено: 14:03, 01-03-2019 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Sisin, пакетного файла нет и быть не может. Может быть скрипт на WSH/AutoIt/PowerShell или какое-нибудь приложение на ЯВУ. Одна тонкость: нормально печатать таким способом посредством умолчального Acrobat Reader не получится, нужна будет ещё одна утилита командной строки, либо какое-нибудь иное приложение.
|
|
Отправлено: 19:20, 01-03-2019 | #2 |
|
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Может кто уже решил такую задачу или знает консольный аналог 2printer. |
|
|
Отправлено: 20:16, 01-03-2019 | #3 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Sisin, никакой связи между gui/console и installable/portable не существует.
Цитата Sisin:
Цитата:
P.P.S. Посмотрел .Sisin, извлеките содержимое 2printer-free-setup.exe посредством innounp.exe. Запустите на целевой машине файл 2Printer.exe с параметром /install. Рядом с 2Printer.exe будет сгенерирован файл 2printer-install.ini со специфичным содержимым. Пользуйте 2Printer.exe. P.P.P.S. По-моему, сто тридцать мегабайт — это чересчур для такой простой задачи. |
||
|
Отправлено: 21:31, 01-03-2019 | #4 |
|
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать А как такой вариант VBS?
Option Explicit
Const ForReading = 1
Dim objFSO
Dim objTS
Dim objWshShell
Dim objWord
Dim objDoc
Dim objExcel
Dim objWorkbook
Dim strListFileName
Dim strFileName
If WScript.Arguments.Count = 1 Then
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")
strListFileName = WScript.Arguments.Item(0)
'WScript.Echo strListFileName
If objFSO.FileExists(strListFileName) Then
Set objTS = objFSO.OpenTextFile(strListFileName, ForReading)
Set objWord = Nothing
Set objExcel = Nothing
Do Until objTS.AtEndOfStream
strFileName = objTS.ReadLine()
'WScript.Echo strFileName
If objFSO.FileExists(strFileName) Then
Select Case UCase(objFSO.GetExtensionName(strFileName))
Case "DOC"
PrintDOC strFileName
Case "XLS"
PrintXLS strFileName
Case "PDF"
PrintPDF strFileName
Case Else
' Nothing to do
End Select
End If
Loop
If Not objWord Is Nothing Then
objWord.Quit
Set objWord = Nothing
End If
If Not objExcel Is Nothing Then
objExcel.Quit
Set objExcel = Nothing
End Select
objFSO.GetFile(strFileName).Name = objFSO.GetBaseName(strFileName) & "_printed." & objFSO.GetExtensionName(strFileName)
End If
Loop
Set objWshShell = Nothing
Set objFSO = Nothing
End If
WScript.Quit 0
'=============================================================================
'=============================================================================
Sub PrintDOC(strFileName)
Const wdDoNotSaveChanges = 0
If objWord Is Nothing Then
Set objWord = WScript.CreateObject("Word.Application")
End If
With objWord
Set objDoc = .Documents.Open(strFileName, False, True, False)
objDoc.PrintOut True
Do
WScript.Sleep 500
Loop Until .BackgroundPrintingStatus = 0
objDoc.Close wdDoNotSaveChanges
Set objDoc = Nothing
End With
End Sub
'=============================================================================
'=============================================================================
Sub PrintXLS(strFileName)
If objExcel Is Nothing Then
Set objExcel = WScript.CreateObject("Excel.Application")
End If
With objExcel
.AskToUpdateLinks = False
.Interactive = False
.DisplayAlerts = False
Set objWorkbook = .Workbooks.Open(strFileName, 0, True)
objWorkbook.PrintOut
objWorkbook.Close False
Set objWorkbook = Nothing
End With
End Sub
'=============================================================================
'=============================================================================
Sub PrintPDF(strFileName)
objWshShell.Run """C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\AcroRd32.exe"" /h /p """ & strFileName & """", 0, True
End Sub
'=============================================================================
|
|
|
Отправлено: 21:46, 01-03-2019 | #5 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Sisin:
. Ну, что автор может сказать о своём собственном коде?! ![]() 1. Для Вашего случая он нуждается в некоторой переделке, заключающейся в том, что приведённый код рассчитан на обработку документов из сформированного списка в текстовом файле, путь к которому передаётся скрипту в качестве параметра. 2. Приведённый код являлся упрощением более сложного варианта скрипта, который «следил» за содержимым каталога, при появлении в нём новых документов печатал их и, по окончании процесса постановки задания в очередь печати, удалял/перемещал эти документы. 3. AcroRd32.exe не завершает свою работу по окончании процесса печати, но заказчика такой вариант вполне устраивал, посему для печати pdf-файлов был использован именно он, и именно в таком виде. Вот как-то так. |
|
|
Отправлено: 23:40, 01-03-2019 | #6 |
|
Старожил Сообщения: 345
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
|
Отправлено: 00:33, 02-03-2019 | #7 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Sisin:
Цитата Sisin:
|
||
|
Отправлено: 01:51, 05-03-2019 | #8 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| CMD/BAT - [решено] Печать pdf-файлов из командной строки. | Michael | Скриптовые языки администрирования Windows | 6 | 06-02-2019 10:18 | |
| 2012 R2 - [решено] В одной учетной записи не открываются файлы *.doc *.xls (При этом все хорошо с *.docx | alexwci | Windows Server 2012/2012 R2 | 9 | 20-12-2018 11:20 | |
| CMD/BAT - Переименование файлов .doc в .docx | Falcon99 | Скриптовые языки администрирования Windows | 12 | 07-08-2018 15:13 | |
| CMD/BAT - [решено] Пересохранить документы из DOC в DOCX | NikolayHAOS | Скриптовые языки администрирования Windows | 6 | 19-08-2017 12:22 | |
| Разное - [решено] Резервное копирование файлов doc и xls. | dzekka | Microsoft Windows 2000/XP | 2 | 28-01-2011 13:09 | |
|