![]() |
![]() |
|
Как из 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 Здесь очень много полезной информации. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |