Lavr wrote:Я думаю, подробности моих шаманских плясок вам не интересны, но в итоге я выдавил из гаджета то, что так хотел:
С:\СОРY /B TESTFILE.BIN LPT2 - сработало!  

 
В общем пришлось мне эти "шаманские пляски с бубнами" повторить, но в масштабах несравнимых...  
 
Дело в том, что я эти пляски выполнял под 
Windows XP, а это всё же не самая злобная ОС.  
 
А тут пришлось повторить "пляски с бубнами" под 
Windows 7 в течение 2-х суток, и я уже
думал у меня голова лопнет!  
 
Вкратце - если надо послать на принтер бинарный файл, чтобы ни один драйвер Венды не испортил
ни одного байта, и не вставил лишнего, лучше всего использовать команду:
С:\СОРY /B TESTFILE.BIN LPT1 (или 
PRN )
Но если реально на компе порта 
LPT нет, то 
СОРY в порт 
USB (некий 
USB0001)
не сработает...
Поэтому делают хитрый трюк, чтобы обмануть гнусную Венду вот так: принтер делают доступным
по сети, или, как говорят "расшаривают". 
1_SHARE1.gif
Далее - надо точно скопировать его сетевое имя, хотя его мы задаем сами. Причем желательно, чтобы
в имени не было пробелов и кириллицы, это удлинит шаманский танец, если что...  
 
Пусть для определенности будет: 
MyPrinter
Также нужно точно знать сетевое имя своего компьютера и лучше его узнать, набрав в командной
строке (
cmd) команду 
hostname.
Пусть для определенности будет: 
MyComputer  
  (как неоригинально!)
Теперь следует "замапить" (как говорят) по сети этот сетевой принтер на 
LPT1, и делается 
это из командной строки так:
net use LPT1 \\MyComputer\MyPrinter
Если всё пройдёт успешно, на этот 
LPT1 уже и можно делать 
С:\СОРY /B TESTFILE.BIN LPT1 .
Но тут и возникают всякие "но"... 
Windows XP, как говорят, не любит "мапить" на  
LPT1.
Поэтому лучше сделать 
net use LPT2 \\MyComputer\MyPrinter и потом уже: 
С:\СОРY /B TESTFILE.BIN LPT2 .
Также, говорят, что если в компьютере есть настоящие  
LPT1 и  
LPT2 - конфликт может быть
с ними, тогда лучше "НетЮзать" несуществующий  
LPT - да хоть  
LPT5 ...  
 
Мы можем проверить, как всё удачно или неудачно "замапилось":
С:\net use LPT1
Local name LPT1
Remote name \\MyComputer\MyPrinter
Resource type Print
Status OK
# Opens 0
# Connections 1
The command was completed successfully.
Это - успешно... примерно то же самое будет и на русской Венде, и самое главное, это:
Status OK - без него печатать не будет и в 
Windows 7 придется ткнуть иконку принтера 
и выбрать "
Присоединить".
Если что-то не так - можно отсоединить сетевой принтер от 
LPT:
net use LPT1 /d
LPT1 was deleted successfully.
---------------------------------------------------------------------------------------
Всё, что сказано выше, под 
Windows ХР должно сработать без проблем...
а вот под под 
Windows 7 делаем всё то же, но начинаются проблемы...  
 
Если кто мне не верит, минимум вот столько людей не могут решить эту проблему:
https://serverfault.com/questions/55532 ... o-lpt-port
http://forum.vingrad.ru/forum/topic-328349/kw-windows-copy-prn-сеть/view-all.html
https://social.technet.microsoft.com/Fo ... networking
https://superuser.com/questions/420149/ ... ed-printer
http://forum.wincmd.ru/viewtopic.php?p=100874
Под 
Windows 7 делаем всё то же, но получается вот что:
net use LPT2 \\MyComputer\MyPrinter
команда успешно выполнена
copy %1 LPT2
Отказано в доступе.(он же access denied)
Скопировано файлов 0.
net use LPT2 /delete
LPT2 успешно удален
И никакие страшные заклинания не берут эту проблему! И звук бубна бьёт по собственной голове!  
 
(
Я не буду приводить ошибочные решения...)
Но в итоге ларчик открылся очень просто:
When printing some data to a connected printed via the dos COPY command:
it works great when the printer is set to "spool" but when using "print directly to printer" windows returns an access denied error.
The user is an administrator. I have tried adjusting the Win32/Spool directory to allow full RW permissions.
I've had the issue under Windows 7 and Windows 8.
The printer is connected via USB and is shared using NET USE as LPT3 via local ip, 
ex: net use lpt3 \127.0.0.1\printer /persistent:yes
То есть, в свойствах принтера надо поставить галочки на вкладке чаще всего 
Дополнительно:
* Использовать очередь печати
* Начинать печать после помещения в очередь всего задания .
2_PRINT1.gif
и вот тут-то мы и получает желанное:  
 
copy %1 LPT2
Скопировано файлов 1.
Я надеюсь, что это поможет всем страдальцам (как и мне, мучавшемуся двое суток), ибо наш форум 
хорошо индексируется в поисковиках, а я не могу рассказать про это на стольких площадках...  

 
			
			
						You do not have the required permissions to view the files attached to this post.