как выполнить несколько программ последовательно в VBS - PullRequest
1 голос
/ 27 сентября 2010

У меня есть пара приложений, которые я хотел бы выполнить одно за другим.

как мне это сделать?Я пробовал это, но вторая задача так и не была выполнена.

on error resume next
Set WshShell = CreateObject("WScript.Shell") 

WshShell.Run """C:\Program Files\my folder\do task1.exe.vbs"""

WshShell.Run """C:\Program Files\my folder\do task2.exe.vbs"""

msgbox "Finished tasks"

обновление: заметки найдены на WshShell.Run нажмите здесь

Ответы [ 2 ]

3 голосов
/ 27 сентября 2010

Метод Run в WScript.shell имеет необязательный параметр, который может остановить выполнение скрипта до тех пор, пока метод Run не вернется.

Попытка:

WshShell.Run("""C:\YourPathTo\task1.exe""", 1, true)

Третий параметр true в строке выше указывает интерпретатору дождаться завершения этой задачи, прежде чем перейти к следующей строке скрипта.

-isdi-

3 голосов
/ 27 сентября 2010

То, что вам не хватает (согласно ответу ISDi), является третьим параметром Run, который говорит ему не ждать завершения программы (false), прежде чем продолжить выполнение кода.

Try (Если вы хотитепоместить свой код в подпрограмму, что, если хорошая практика кодирования для повторяющихся действий):

'Place all of the following in a .vbs file

Sub RunApplication(ByVal sFile)

    Dim WShell : Set WShell = CreateObject("WScript.Shell")
    WShell.Run Chr(34) & sFile & Chr(34), 8, false

End Sub


'Executing apps.

RunApplication "C:\Program Files\my folder\task1.exe"
RunApplication "C:\Program Files\my folder\task2.exe"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...