С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Longbow
0 / 0 / 0
Регистрация: 08.02.2015
Сообщений: 2
1

VBS: Вывод данных(потока) в другое приложение и запуск с параметрами

08.02.2015, 14:08. Просмотров 1980. Ответов 5
Метки нет (Все метки)

Люди добрые, просьба помочь, в VBS я к сожалению полный профан..

Есть VBS скрипт, в который нужно добавить строчку запуска приложения с параметрами и передать в приложение некие данные.
В CMD это выглядит так:

Bash
1
echo vmpcrp;IIS-Healthcheck;2;CRITICAL NO Access | C:\UsersWeb\Nagios\send_nsca\send_nsca.exe -H 192.168.181.28 -p 5667 -d ; -c C:\UsersWeb\Nagios\send_nsca\send_nsca.cfg
То есть мы передаем текст 'vmpcrp;IIS-Healthcheck;2;CRITICAL NO Access' в приложение C:\UsersWeb\Nagios\send_nsca\send_nsca.exe и запускаем его с различными параметрами

Мне нужно переделать это под vbs, как - я в упор не понимаю, примеров не нашел. Видимо туплю. Как запустить файл с параметрами из VBS ясно, а вот как туда передать данные - не пойму. Насколько я понимаю таких штук как конвейеры в нем нет.

Запуск с параметрами я вижу примерно так:
WshShell.exec ( "C:\UsersWeb\Nagios\send_nsca\send_nsca.exe -H 192.168.181.28 -p 5667 -d ; -c C:\UsersWeb\Nagios\send_nsca\send_nsca.cfg" )
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2015, 14:08
Ответы с готовыми решениями:

Vbs -скрытый запуск программы с параметрами и её отслеживание
Требуется скрыто запускать программу с параметром, если она завершится, скрыто...

Запуск bat из VBS
Добрый день! Я не програмист, поэтому обращаюсь к Вам с данным вопросом: Есть...

Запуск файла с vbs скрипта
Как запустить какой-либо файл с vbs скрипта? Прописал путь таким образом но не...

Запуск vba из vbs скрипта
Прошу помощи. Сам я человек далёкий от VBS. Задача такая.... есть файл excel,...

Запуск скрипта VBS из HTA
Добрый день. Помогите пожалуйста в решении следующей задачи. Есть скрипт...

5
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
08.02.2015, 19:18 2
Чтобы передать данные в подпроцесс в VBS/JS обычно используют 2 способа:

1. objA.StdIn.Write("string") здесь objA = objWSH.Exec("proga.exe");
примерно как в #4 посте треда Получение внешнего IP-адреса
только там objA.StdOut.Read() соотв. надо переделать

2. функция SendKeys() - шлет клавиатурные события в активное окно примерно
как в этом треде: Перенаправить запрос пароля из консоли на командный файл

Добавлено через 4 часа 26 минут
по первому варианту должно быть что-то вроде такого:
Visual Basic
1
2
3
4
5
6
7
8
set objWSH = CreateObject("WScript.Shell")
set objA = objWSH.Exec("C:\UsersWeb\Nagios\send_nsca\send_nsca.exe -H 192.168.181.28 -p 5667 -d ; -c C:\UsersWeb\Nagios\send_nsca\send_nsca.cfg")
 
WScript.Sleep(1000)
 
objA.StdIn.Write("vmpcrp;IIS-Healthcheck;2;CRITICAL NO Access")
 
'WScript.Echo(objA.StdOut.ReadAll())
3
Longbow
0 / 0 / 0
Регистрация: 08.02.2015
Сообщений: 2
09.02.2015, 11:05  [ТС] 3
buggydancer, спасибо за ответ! Все прояснилось наконец) Попробовал и так, и так - все равно не взлетает. Может быть пути в кавычки все же надо добавить? Вроде поигрался с кавычками - никакого результата((

"C:\UsersWeb\Nagios\send_nsca\send_nsca.exe -H 192.168.181.28 -p 5667 -d ; -c C:\UsersWeb\Nagios\send_nsca\send_nsca.cfg"

Добавлено через 11 часов 33 минуты
В итоге сделал вот так, всем сапсибо, вопрос закрыт))

Visual Basic
1
CreateObject("WScript.Shell").Exec("cmd /c ""echo vmpcrp;IIS-Healthcheck;0;I FEEL GOOD| C:\UsersWeb\Nagios\send_nsca\send_nsca.exe -H 192.168.181.28 -p 5667 -d ; -c C:\UsersWeb\Nagios\send_nsca\send_nsca.cfg""")
0
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
09.02.2015, 13:40 4
Цитата Сообщение от Longbow Посмотреть сообщение
...Попробовал и так, и так - все равно не взлетает...
может ему Cr/Lf в конце строки нехватало? т.е. 6 строку переписать как нибудь так:
Visual Basic
1
objA.StdIn.Write("vmpcrp;IIS-Healthcheck;2;CRITICAL NO Access" & vbCrLf)
или так:
Visual Basic
1
objA.StdIn.WriteLine("vmpcrp;IIS-Healthcheck;2;CRITICAL NO Access")
3
ComSpec
3407 / 1951 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
09.02.2015, 20:25 5
Может быть программу нужно запускать с помощью "cmd.exe":
Visual Basic
1
CreateObject("WScript.Shell").Exec("cmd /c C:\UsersWeb\Nagios\send_nsca\send_nsca.exe -H 192.168.181.28 -p 5667 -d ; -c C:\UsersWeb\Nagios\send_nsca\send_nsca.cfg").StdIn.Write("vmpcrp;IIS-Healthcheck;2;CRITICAL NO Access")
?

Или выполнить всю командную строку:
Visual Basic
1
CreateObject("WScript.Shell").Exec("cmd /c ""echo vmpcrp;IIS-Healthcheck;2;CRITICAL NO Access| C:\UsersWeb\Nagios\send_nsca\send_nsca.exe -H 192.168.181.28 -p 5667 -d ; -c C:\UsersWeb\Nagios\send_nsca\send_nsca.cfg""")
?
1
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
10.02.2015, 13:05 6
Цитата Сообщение от ComSpec Посмотреть сообщение
...Может быть программу нужно запускать с помощью "cmd.exe":
Да, ТС в итоге так и сделал, я, вот тоже сделал вариант с xcopy:
Visual Basic
1
2
3
4
5
6
7
8
9
'cscript.exe //nologo exec2.vbs
set objWSH = CreateObject("WScript.Shell")
set objA = objWSH.Exec("xcopy c:\-\tel93.zip c:\-\pub")
 
'WScript.Sleep(1000)
 
objA.StdIn.Write("y")
 
WScript.Echo(objA.StdOut.ReadAll())
Поскольку проверить вариант ТС с нагиосом \Nagios\ немогу
1
10.02.2015, 13:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2015, 13:05

Запуск bat с через VBS с правами администратора
Set WshShell = CreateObject("WScript.Shell") WshShell.Run "service.bat", 1,...

Запуск CMD с параметрами
нужно запустить CMD с параметрами пинга

Создание бинарного файла из vbs / Как создать exe файл из vbs
Имеется файл с расширением exe. Нужно как-нибудь занести массив байт в скрипт,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru