Как из VBS запустить приложение, дождаться завершения и получить errlevel #267721


#0 by Гений 1С
Хочу перейти с батников на VBS-ки. Вот собственно, главное с чего хочу начать. ;-) Нужно запустить приложение, дождаться или не дождаться завершения и получить error level.
#1 by DGorgoN
Т.е. теперь Гению 1с нужно будет объяснять весь вбс? Мануалов в сети полно - яндекс и гугл помогают в поиске..
#2 by asady
вот скопи-пастил примерчик 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 by Гений 1С
а че, без шелла никак нельзя? неужели в VBS нет встроенных функций для запуска? гыгыгы, оригинально не бухти, речь идет только о том, как запустить файло
#4 by asady
можно еще 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 by Звездочёт
давно пора ;) + если скрипт завершить командой WScript.Quit(КодВозврата), то этот код, в частности будет отображен в Scheduler'е.
#6 by Звездочёт
могу посоветовать параллельно изучать JScript, т.к. считаю, что он более гибкий. И еще в сриптах можно создавать свои классы (также просто, как писать функции). Здесь тебе будет где развернуться ;)
#7 by Гений 1С
разве JS можно запускать из командной строки? Только из браузера или HTA, а в браузере заморочки с безопасностью, нах...
#8 by Гений 1С
RetCode = WshShell.Run("notepad", 1, True) True - это означает дождаться завершения, понятно, а что такое 1???
#9 by asady
1 - Активизирует и отображает окно. :))))  пятница - отдыхай.
#10 by Гений 1С
а 0 - не отображает? а какие еще варианты?
#11 by asady
Ты внимательно читал? :))))  пятница - отдыхай.
#12 by Гений 1С
да, тяпница... гыгыгы
#13 by sapphire
>>разве JS можно запускать из командной строки? ... выдохни, бобёр, выдохни (c)
#14 by sapphire
покури sript-coding.info
#15 by Гений 1С
как!
#16 by sapphire
script
#17 by Звездочёт
JScript и VBScript, который ты собрался освоить, это два скриптовых языка, призванные выполнять совершенно одно и то же. Microsoft будет их поддерживать параллельно, пока не разорится.
#18 by Звездочёт
#19 by Гений 1С
я знаю, что могу создать файл vbs и он выполнится, а js  - нет. не надо меня посылать на микрософт. Я знаю оба языка.
#20 by Звездочёт
как это js-файл не выполнится? :) Можно поподробнее? Жуть как интересно :) > "Не надо меня посылать на микрософт" Во-первых, тебя никто не посылает, а даёт конкретную ссылку. Во-вторых, зачем тогда пишешь , ?
#21 by asady
сдается мне господа Г1С на мелкософте забанили...
#22 by Гений 1С
гы, запустился. только не выполнился, я в нем написал: alert("yo");
#23 by Звездочёт
:) alert - это метод объекта window, в объектной модели IE. В скриптах IE можно опускать window, т.к. это глобальный объект. Поэтому, здесь этот метод, очевидно, работать не будет. Можно вывести сообщение либо используя WScript.Echo, либо WshShell.Popup.
#24 by Гений 1С
ладно, понятно, но VBS как то ближе. ;-)
#25 by Звездочёт
то, что ближе, это не случайно. Он так и появился на свет - был создан для людей. В VBScript всё хорошо, но на JScript перешел только по одной просто причине: в VBScript нет оператора Continue. С этим я не смог смириться :) Бесконечно вложенные конструкции If в цикле For Next - меня просто убивают :)
#26 by Гений 1С
а еще в VBS нет IIF
#27 by Гений 1С
А вот как в VBS запустить другой файл (типо call) или включить другой файл (типо include) и как работать с командной строкой (прочитать параметры командной строки).
#28 by DGorgoN
см
#29 by Гений 1С
блин, одно слово сказать, тому кто юзал.. хотя бы наводку. ;-)
#30 by smaharbA
For each c in WScript.Arguments msgbox c Next
#31 by FreeFin
Посмишили))) таки тяпница!
#32 by Гений 1С
а типо колла?
#33 by sapphire
а типа chm по vbs покурить религия не позволяет? Опять же, поищи на - там много полезного.
#34 by Звездочёт
Здесь ты найдешь ответ на первый и третий вопросы.
#35 by Звездочёт
ответ на второй вопрос здесь:
#36 by Звездочёт
А вообще, чтобы узнать всё, что касается скриптов, начинать читать здесь: Здесь очень много полезной информации.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям