Я использую Zbarimg, который (я считаю) выводит свои данные в STDOUT. Таким образом, в настоящее время строка cmd в VBScript выполняет команду и сохраняет ее в переменной, таким образом:
xml_data=objShell.Exec("C:\MobiEvent\Zbar\bin\zbarimg -D -q --xml C:\MobiEvent\AllPics\*.jpg").stdout.readall
(Для непосвященных -D останавливает отображение изображения штрих-кода, считываемого из изображения, и -q хранит все в тайне, поэтому выводятся только данные XML). Все это хорошо работает, когда все данные AllPics хранятся в xml_data. Проблема, как всегда, в консоли всплывает окно, которое остается открытым во время работы скрипта. И с 200+ фотографиями, он остается открытым некоторое время
В качестве альтернативы можно использовать команду «Выполнить» и пометить «, 0, False» в конце ... но, конечно же, выходные данные StdOut не собираются для последующей обработки!
Я спрашиваю себя, возможно ли объединить их, используя конвейер, мой ТЕОРЕТИЧЕСКИЙ синтаксис ...
objShell.Run("C:\MobiEvent\Zbar\bin\zbarimg -D -q --xml C:\MobiEvent\AllPics\*.jpg"|to other script),0,True
** Даже не уверен, что программа сделает это, так как может прочитать канал как часть пути к каталогу.
Который тогда напрашивается на следующий вопрос. Если это возможно, можно передать STDOUT, как мне прочитать этот вывод по конвейеру обратно во вторую программу VBScript? (Все, что мне нужно сделать, это получить выходные данные программы для распечатки в файл, чтобы я мог опубликовать процесс, снова прочитав и разделив его на составные части, чтобы получить имя файла фотографии и значение QR)
Я знаю, что эта дискуссия "Run = скрыть окно / Exec = не могу скрыть" бушевала некоторое время. Просто подумал, что вышеприведенное МОЖЕТ доказать альтернативный вариант.