Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/89: Рейтинг темы: голосов - 89, средняя оценка - 4.74
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14

Сканирование из командной строки

04.07.2014, 10:16. Показов 19360. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Скачал программу CmdTwain для сканирования из консоли, все классно, научился сканировать в папку локальную, попробовал так же отсканировать в сетевую папку, предварительно подключил ее как сетевой диск, но не получилось, как хотел. Задача, как раз заключается в сканировании документов в сетевую папку, как это сделать?
Второй вопрос, как имя файла увеличивать на 1, т.е. чтобы при сканировании файлы не перезаписывались?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.07.2014, 10:16
Ответы с готовыми решениями:

Возврат каретки и перевод строки в приглашении Командной строки
В строке приглашения MS-DOS после вывода всей информации перейти на новую строчку. как это сделать?

Слияних 2 файлов в третий + строки + использование командной строки
Помогите с заданием пожалуйста. Задано 2 файла, строки в которых упорядочены по алфавиту. Написать программу, осуществляющую слияние этих...

Прочитать аргумент командной строки и добавить в него пробелы, чтобы длинна строки равнялась заданному числу
Прочитать аргумент командной строки и добавить в него пробелы так, чтобы длинна строки равнялась заданному числу. Пробелы равномерно...

18
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
05.07.2014, 14:05
Сканируйте в локальную.
Добавляйте единичку.
Копируйте в сетевую.

Покажите код.
0
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
07.07.2014, 11:54  [ТС]
Сканирует, папку с правами только на чтение прописывал, прописал нужную папку отсканировал куда хотел)

Добавлено через 1 час 47 минут
Цитата Сообщение от Dragokas Посмотреть сообщение
Покажите код.
Code
1
"C:\Program Files\GssEziSoft\CmdTwain\CmdTwain.exe" /PAPER=A4 /DPI=100 /JPG \\ssg-fileserver\For_write_scans\scan_%date:~0,2%%date:~3,2%%date:~6,2%_%time:~0,2%%time:~3,2%%time:~6,2%.jpg
Как вместо вот этой большой записи %date:~0,2%%date:~3,2%%date:~6,2%_%time: ~0,2%%time:~3,2%%time:~6,2% генерировать число, как я спрашивал в теме
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
07.07.2014, 18:15
Bash
1
2
3
::
cmd /v:ON /e:ON /c "(set "f=\\ssg-fileserver\For_write_scans"& set n=0& for /f "tokens=2 delims=_." %a in ('2^>NUL dir /b "!f!\name_*.jpg"') do if %a GTR !n! set n=%a)& set /a n+=1& "C:\Program Files\GssEziSoft\CmdTwain\CmdTwain.exe" /PAPER=A4 /DPI=100 /JPG "!f!\name_!n!.jpg""
::
Сделал для шаблона name_*.jpg
Следовательно в той папке никаких лишних файлов с таким именем с разношерстными форматами символов вместо * не должно быть.
1
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
07.07.2014, 19:25  [ТС]
Dragokas, а как получить имя файла scan_00001?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
07.07.2014, 20:39
Получить легко. Рассчитать последнюю цифру будет сложнее.
Вам принципиально это нужно в одну строку или может сделаем батником?

Добавлено через 7 минут
А вообще, можно и так:

Bash
1
2
3
::
cmd /v:ON /e:ON /c "(set "f=\\ssg-fileserver\For_write_scans"& set n=100000& for /f "tokens=2 delims=_." %a in ('2^>NUL dir /b "!f!\name_*.jpg"') do if 1%a GTR !n! set n=1%a)& set /a n+=1& "C:\Program Files\GssEziSoft\CmdTwain\CmdTwain.exe" /PAPER=A4 /DPI=100 /JPG "!f!\name_!n:~-5!.jpg""
::
1
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
08.07.2014, 14:10  [ТС]
мне бы хотелось это запихнуть в реестр и повесить на кнопку сканера, чтобы при нажатии выполнялся этот скрипт

Добавлено через 4 часа 58 минут
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
08.07.2014, 16:06
Henior, так создайте батник, а в реестре пропишите путь к нему.
1
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
08.07.2014, 16:34  [ТС]
Тогда, как вот этот код записать в батник?
Bash
1
cmd /v:ON /e:ON /c "(set "f=\\ssg-fileserver\For_write_scans"& set n=100000& for /f "tokens=2 delims=_." %a in ('2^>NUL dir /b "!f!\name_*.jpg"') do if 1%a GTR !n! set n=1%a)& set /a n+=1& "C:\Program Files\GssEziSoft\CmdTwain\CmdTwain.exe" /PAPER=A4 /DPI=100 /JPG "!f!\name_!n:~-5!.jpg""
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
08.07.2014, 17:56
Лучший ответ Сообщение было отмечено Henior как решение

Решение

Заменить одиночные проценты двойными.
1
 Аватар для Henior
79 / 79 / 15
Регистрация: 24.11.2010
Сообщений: 515
Записей в блоге: 14
08.07.2014, 18:15  [ТС]
Dragokas, все так просто)))
0
12 / 18 / 2
Регистрация: 02.11.2015
Сообщений: 222
15.06.2018, 14:07
интересно, а без сторонней программы нельзя Виндовс заставить сканировать? Есть же там сервер печати, и оснастка. Нашёл вот wiaacmgr.exe запускает сканирование. Правда с маленькими недочётами. Молча сканить не может. Запускает вроде штатное приложение для скана от HP, ну там: окошко с настройками и предв.сканированием. Только после того как отсканирует пихает в свою системную папку, что тоже уже не по сценарию.

Добавлено через 39 минут
вот например есть служба загрузки изображений Windows WIA (Windows Image Acquisition). К ней можно получить доступ условно через cmd.exe (командную строку), как я понимаю через vbs-скрипт (надеюсь синтаксис не перепутал, wsh и т.п). Вот пример со стороннего сайта, авторы уверяют в работоспособности:

wia_scan.vbs
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
Option Explicit
 
Const ScannerDeviceType = 1
Const ColorIntent = 1
Const wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"
 
 
Dim objFSO
 
Dim objDeviceManager
Dim objDeviceInfos
Dim objDevice
 
Dim objImageFile
Dim objImageProcess
 
Dim strPath2Save
Dim strFormat
Dim intQuality
Dim intDPI
Dim intHorizontalSize
Dim intVerticalSize
 
 
' Задаём характеристики изображения
strPath2Save      = "D:\Отсканированные документы" ' Путь к папке для сохранения
strFormat         = wiaFormatJPEG                  ' Формат файла — *.jpg
intQuality        = 80                             ' Качество jpg
intDPI            = 300                            ' Разрешение — 300 dpi
intHorizontalSize = (210 / 25.4) * intDPI          ' Размер по горизонтали — A4
intVerticalSize   = (297 / 25.4) * intDPI          ' Размер по вертикали — A4
 
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
 
If objFSO.FolderExists(strPath2Save) Then
    Set objDeviceManager = WScript.CreateObject("WIA.DeviceManager")
    Set objDeviceInfos = objDeviceManager.DeviceInfos
    
    If objDeviceInfos.Count > 0 Then
        ' Выбираем устройство для сканирования. Если оно единственное, то сие произойдёт без отображения диалога.
        Set objDevice = WScript.CreateObject("WIA.CommonDialog").ShowSelectDevice(ScannerDeviceType, False, False)
        
        If Not objDevice Is Nothing Then
            WScript.Echo objDevice.Properties.Item("Name") & " [" & objDevice.DeviceID & "]"
            WScript.Echo "Scanning..."
            
            With objDevice
                With .Items(1)
                    ' Задаём требуемые характеристики изображения для сканирования
                    With .Properties
                        .Item("6146").Value = ColorIntent             ' Цветовая модель (Current Intent)
                        
                        ' Разрешение…
                        .Item("6147").Value = intDPI                  ' …по горизонтали (Horizontal Resolution)
                        .Item("6148").Value = intDPI                  ' …по вертикали (Vertical Resolution)
                        
                        ' Начало области сканирования…
                        .Item("6149").Value = 0                       ' …по горизонтали (Horizontal Start Position)
                        .Item("6150").Value = 0                       ' …по вертикали (Vertical Start Position)
                        
                        ' Размер области сканирования…
                        .Item("6151").Value = intHorizontalSize       ' …по горизонтали (Horizontal Extent)
                        .Item("6152").Value = intVerticalSize         ' …по вертикали (Vertical Extent)
                    End With
                    
                    ' Инициируем начало операции сканирования
                    Set objImageFile = .Transfer()
                    
                    ' Конвертируем полученное изображение
                    WScript.Echo "Converting..."
                    
                    Set objImageProcess = WScript.CreateObject("WIA.ImageProcess")
                    
                    With objImageProcess
                        With .Filters
                            .Add objImageProcess.FilterInfos("Convert").FilterID
                            
                            With .Item(1).Properties
                                .Item("FormatID").Value = strFormat  ' Формат изображения
                                .Item("Quality").Value  = intQuality ' Качество изображения
                            End With
                        End With
                        
                        Set objImageFile = .Apply(objImageFile)
                    End With
                End With
            End With
            
            ' Сохраняем полученное изображение
            objImageFile.SaveFile objFSO.BuildPath(strPath2Save, "ScanImage_" & FormatLocalDateTime() & ".jpg")
            
            WScript.Echo "Complete."
            
            Set objDevice = Nothing
        Else
            WScript.Echo "Cancel scanning by user"
        End If
    Else
        WScript.Echo "No connected devices"
    End If
    
    Set objDeviceManager = Nothing
    Set objDeviceInfos   = Nothing
Else
    WScript.Echo "Папка для сохранения результатов сканирования [" & strPath2Save & "] не найдена."
    WScript.Quit 1
End If
 
Set objFSO = Nothing
 
WScript.Quit 0
'=============================================================================
 
'=============================================================================
Function FormatLocalDateTime()
    Dim objSWbemObjectEx
    
    For Each objSWbemObjectEx In GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery("SELECT LocalDateTime FROM Win32_OperatingSystem")
        FormatLocalDateTime = Left(objSWbemObjectEx.LocalDateTime, 8 + 6)
        
        Exit For
    Next
End Function
'=============================================================================


Правда у меня не работает: зависает на диалоговом окне Scanning....
Жаль врятли дойдут руки разобраться... Сканирую я не часто, но в принципе, было бы полезно разобраться с поддержкой сканирования доков через консоль
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
15.06.2018, 19:43
Цитата Сообщение от Eskander88 Посмотреть сообщение
а без сторонней программы нельзя Виндовс заставить сканировать?
Цитата Сообщение от Eskander88 Посмотреть сообщение
Нашёл вот wiaacmgr.exe
и чем же или почему не строила CMDTWAIN
предлагаете умельцам тоже бесплатно полностью повторить эту утилиту, только на vbs (ну если еще возможно), так же назвать, тогда зачем - обидеть автора только из-за того что у вас фобия на скачивание неизвестной утилиты?
0
12 / 18 / 2
Регистрация: 02.11.2015
Сообщений: 222
15.06.2018, 20:05
Цитата Сообщение от alpap Посмотреть сообщение
предлагаете умельцам тоже бесплатно полностью повторить эту утилиту, только на vbs (ну если еще возможно), так же назвать, тогда зачем - обидеть автора только из-за того что у вас фобия на скачивание неизвестной утилиты?
честно говоря не понял мотива и направления вашей мысли. Старался отвечать по теме в заголовке, которую нагуглил через поиск. И чтобы не плодить темы на форуме просто расширил её кругозор. И как бы мне понятно, что автор уже пустился во все тяжкие и хочет разобраться с CMDTWAIN, ну пожалуйста - почему нет?

Что касается сторонних прог, то их вообще много, для любых целей и на любой вкус накачать, - и вообще почему бы перестать парится и со скриптами и с bat-никами: на семь бед один ответ?!

Ну а если не хочется качать прогу, мало ли какие соображения.. тем более если ресурс ОС позволяет. Какие могут быть тут обиды, , если это конечно не рекламная статья

По сути если принтер с дровами встал, то там уже должна быть оснастка под сканирование и печать. Проблема только, что ключи для консольного использования тяжело найти.

Если прям принципиально, тогда могу откланятся и пойду создавать другую тему..
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
15.06.2018, 22:53
Цитата Сообщение от Eskander88 Посмотреть сообщение
Что касается сторонних прог, то их вообще много, для любых целей и на любой вкус накачать, - и вообще почему бы перестать парится и со скриптами и с bat-никами: на семь бед один ответ?!
странный подход или понятие
со скриптами парятся чтобы создать более удобную комфортную работу в плане автоматизации - однотипная рутинная работа одним махом и без участия пользователя практически.
Девиз: Против прог! Все можно написать и самому! Тогда давайте и в cmd писать самим внутренние утилиты: dir, findstr, xcopy и т.д. , далеко зайдем - не?
моя позиция: Если велосипед изобретен, доступен, едет и сильно кушать не просит, я буду его использовать там где надо и скажу за него спасибо, а не стану выступать что с шестиугольными колесами было бы лучше или жили без него и дальше проживем.
1
12 / 18 / 2
Регистрация: 02.11.2015
Сообщений: 222
15.06.2018, 23:09
Цитата Сообщение от alpap Посмотреть сообщение
Девиз: Против прог! Все можно написать и самому! Тогда давайте и в cmd писать самим внутренние утилиты: dir, findstr, xcopy и т.д. , далеко зайдем - не?
ну если продолжать эту дискуссию в таком ключе то да....

причём тут проги??? Если речь идёт о сканировании через командную строку... Давайте Photoshop поставим... Хотя щас есть такая манера ставить Photoshop для правки скринов, делая 5 минут, то что можно в paint за 10 секунд. А некоторые за 3 секунды делают на хоткее на уже встроенной утилите Windows 10... то что пару лет назад без спецпрограмм не делалось.. и всё норм. (это так, просто ремарка)

Задайте свой вопрос автору скрипта и ему подобным, если так волнуют вопросы мировозрения. Найдите и спросите почему он против прог и какое право имел подрывать своими "антинаучными" скриптами всю IT-систему

P.S. установка прог в некоторых организация карается сисадмином
0
 Аватар для bidstrup
419 / 179 / 27
Регистрация: 11.03.2018
Сообщений: 771
16.06.2018, 02:12
Выбирая между распространённой консольной утилитой,
использующей драйвер TWAIN и непонятным скриптом, использующим драйвер WIA,
разумный человек, которому надо решить задачу, остановится на первом.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
16.06.2018, 14:09
Цитата Сообщение от Eskander88 Посмотреть сообщение
причём тут проги??? Если речь идёт о сканировании через командную строку..
в командной строке тоже есть проги (утилиты), говорил выше И любой язык ими обрастает для более быстрого и УДОБНОГО и ПОНЯТНОГО его использования. То о чем говорим можно на каком-то этапе рассмотреть как одну из подобных утилит. Если не хотите этого понять или принять дело ваше, конечно, но не надейтесь что у вас много последователей.
0
-99 / 12 / 0
Регистрация: 09.10.2021
Сообщений: 420
09.02.2023, 18:07
а есть у кого информаци о том как сканировать именно из командной строки, а не сторонней программой для сканирования? только средствами виндоуз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2023, 18:07
Помогаю со студенческими работами здесь

QT с командной строки
В QT свой компил входит? Под чем он сам работает? Можно ли его юзить с командной строки? Как? Где вязть инфу для изучения реализованного...

Дамп с командной строки
тему уже не однократно подымал и по немногу продвигался но все еще не разобрался. короче говоря делаю так 1) открываю командную строку...

Студия с командной строки
Меня окончательно задолбали IDE, и я хочу юзить с командной строки c++ компиляторы студии: 1. Microsoft Developmet Studio 4.0, 2....

Аргументы командной строки
Стр. 184. Г. Шилдт: Аргументы командной строки. Многие программы получают параметры, задаваемые в командной строке и называются ...

Аргументы командной строки
Необходимо открыть файл на чтение, используя аргументы main. Не хотелось бы прописывать путь к файлу, который хотим открыть. Файл помещен в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru