Имя: Пароль:
IT
 
Как из VBS запустить приложение, дождаться завершения и получить errlevel
0 Гений 1С
 
гуру
19.04.07
15:58
Хочу перейти с батников на VBS-ки.
Вот собственно, главное с чего хочу начать. ;-)

Нужно запустить приложение, дождаться или не дождаться завершения и получить error level.
1 DGorgoN
 
19.04.07
16:00
Т.е. теперь Гению 1с нужно будет объяснять весь вбс?
Мануалов в сети полно - яндекс и гугл помогают в поиске..
2 asady
 
19.04.07
16:01
(0)
вот скопи-пастил примерчик
Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("nslookup")
Set InStream = WshExec.StdIn
InStream.WriteLine "abc123"
InStream.WriteLine "exit"
Set OutStream = WshExec.StdErr
Str = vbNullString
While Not OutStream.AtEndOfStream
   Str = Str & Trim(OutStream.ReadLine()) & vbCrLf
Wend
MsgBox Str
3 Гений 1С
 
гуру
19.04.07
16:07
(2) а че, без шелла никак нельзя? неужели в VBS нет встроенных функций для запуска? гыгыгы, оригинально
(1) не бухти, речь идет только о том, как запустить файло
4 asady
 
19.04.07
16:18
(3) можно еще Run поюзать
вот примерчик
Run
Синтаксис:

Run(<Command>,<WindowStyle>,<WaitOnReturn>)

Назначение:

Создаёт новый независимый процесс, который запускает заданное приложение.

Параметры:

<Command> - строка, командная строка запуска приложения.
<WindowStyle> - необязательный, число. Определяет вид окна запускаемого приложения. Некоторые возможные значения:
1 - Активизирует и отображает окно.
2 - Активизирует окно и отображает его в свёрнутом виде.
3 - Активизирует окно и отображает его в максимизированном виде.
<WaitOnReturn> - необязательный, булево (число). True - сценарий возобновит работу только после завершения вызванного процесса. False (по умолчанию) - управление передаётся сразу обратно в сценарий.


Описание:

Если параметр "WaitOnReturn" установлен в True, метод возвращает код выхода вызванного приложения. Иначе метод всегда возвращает ноль.

Пример:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "explorer /e,/root,""C:\Program Files"""


Другой пример:

Set WshShell = CreateObject("WScript.Shell")
RetCode = WshShell.Run("notepad", 1, True)
MsgBox "Обработка завершена! Код возврата - " & RetCode
5 Звездочёт
 
20.04.07
00:51
(0) давно пора ;)
+(4) если скрипт завершить командой WScript.Quit(КодВозврата), то этот код, в частности будет отображен в Scheduler'е.
6 Звездочёт
 
20.04.07
00:53
(0) могу посоветовать параллельно изучать JScript, т.к. считаю, что он более гибкий.
И еще в сриптах можно создавать свои классы (также просто, как писать функции).
Здесь тебе будет где развернуться ;)
7 Гений 1С
 
гуру
20.04.07
09:20
(6) разве JS можно запускать из командной строки? Только из браузера или HTA, а в браузере заморочки с безопасностью, нах...
8 Гений 1С
 
гуру
20.04.07
10:37
(4) RetCode = WshShell.Run("notepad", 1, True)
True - это означает дождаться завершения, понятно, а что такое 1???
9 asady
 
20.04.07
10:44
(8)
1 - Активизирует и отображает окно.
:))))  пятница - отдыхай.
10 Гений 1С
 
гуру
20.04.07
10:52
(9) а 0 - не отображает? а какие еще варианты?
11 asady
 
20.04.07
10:54
(10)
Ты (4) внимательно читал?

:))))  пятница - отдыхай.
12 Гений 1С
 
гуру
20.04.07
11:04
(11) да, тяпница... гыгыгы
13 sapphire
 
20.04.07
11:17
(7)>>разве JS можно запускать из командной строки?
... выдохни, бобёр, выдохни (c)
14 sapphire
 
20.04.07
11:18
покури sript-coding.info
15 Гений 1С
 
гуру
20.04.07
11:18
(13) как!
16 sapphire
 
20.04.07
11:18
script
17 Звездочёт
 
20.04.07
11:22
(7) JScript и VBScript, который ты собрался освоить, это два скриптовых языка, призванные выполнять совершенно одно и то же. Microsoft будет их поддерживать параллельно, пока не разорится.
18 Звездочёт
 
20.04.07
11:32
19 Гений 1С
 
гуру
20.04.07
12:09
(17) я знаю, что могу создать файл vbs и он выполнится, а js  - нет.
(18) не надо меня посылать на микрософт.
Я знаю оба языка.
20 Звездочёт
 
20.04.07
12:22
(19) как это js-файл не выполнится? :) Можно поподробнее? Жуть как интересно :)
> "Не надо меня посылать на микрософт"
Во-первых, тебя никто не посылает, а даёт конкретную ссылку.
Во-вторых, зачем тогда пишешь (8), (10)?
21 asady
 
20.04.07
12:23
(20) сдается мне господа
Г1С на мелкософте забанили...
22 Гений 1С
 
гуру
20.04.07
12:35
(20) гы, запустился. только не выполнился, я в нем написал:
alert("yo");
23 Звездочёт
 
20.04.07
12:56
(22) :)
alert() - это метод объекта window, в объектной модели IE.
В скриптах IE можно опускать window, т.к. это глобальный объект.
Поэтому, здесь этот метод, очевидно, работать не будет.
Можно вывести сообщение либо используя WScript.Echo(), либо WshShell.Popup().
24 Гений 1С
 
гуру
20.04.07
12:57
(23) ладно, понятно, но VBS как то ближе. ;-)
25 Звездочёт
 
20.04.07
13:28
(24) то, что ближе, это не случайно. Он так и появился на свет - был создан для людей.
В VBScript всё хорошо, но на JScript перешел только по одной просто причине: в VBScript нет оператора Continue. С этим я не смог смириться :)
Бесконечно вложенные конструкции If в цикле For Next - меня просто убивают :)
26 Гений 1С
 
гуру
20.04.07
13:39
(25) а еще в VBS нет IIF
27 Гений 1С
 
гуру
11.05.07
15:19
А вот как в VBS запустить другой файл (типо call) или включить другой файл (типо include) и как работать с командной строкой (прочитать параметры командной строки).
28 DGorgoN
 
11.05.07
15:21
см (1)
29 Гений 1С
 
гуру
11.05.07
15:26
(28) блин, одно слово сказать, тому кто юзал.. хотя бы наводку. ;-)
30 smaharbA
 
11.05.07
15:29
(27)
For each c in WScript.Arguments
msgbox c
Next
31 FreeFin
 
11.05.07
15:43
Посмишили))) таки тяпница!
32 Гений 1С
 
гуру
11.05.07
15:43
(30) а типо колла?
33 sapphire
 
11.05.07
15:45
(32) а типа chm по vbs покурить религия не позволяет?
Опять же, поищи на www.script-coding.info - там много полезного.
34 Звездочёт
 
11.05.07
22:07
(27) http://msdn2.microsoft.com/en-us/library/at5ydy31.aspx
Здесь ты найдешь ответ на первый и третий вопросы.
35 Звездочёт
 
11.05.07
22:10
(27) ответ на второй вопрос здесь:
http://msdn2.microsoft.com/en-us/library/15x4407c.aspx
36 Звездочёт
 
11.05.07
22:11
А вообще, чтобы узнать всё, что касается скриптов, начинать читать здесь:
http://msdn2.microsoft.com/en-us/library/ms950396.aspx
Здесь очень много полезной информации.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.