Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Скрипт который поочередно запускает на исполнение скриптов (http://forum.oszone.net/showthread.php?t=221352)

Dt83 24-11-2011 11:25 1802243

Скрипт который поочередно запускает на исполнение скриптов
 
Добрый день!

Столкнулась с проблемой. Есть три скрипта. Пишу скрипт, кот. бы поочередно их запускал на исполнение. Но в итоге столкнулась с тем, что запускается последний скрипт на исполнение, а второй еще не отработался. Пыталась поставить между ними паузу, не очень удобно. Т.к. скрипты по работе с файлами, а их кол-во меняется. Подскажите пожалуйста что я могу упускать.

пример скрипта:

Set WshShell = CreateObject("WScript.Shell")

WshShell.Run ("""D:\test\1.vbs""")
WScript.Sleep 800

WshShell.Run ("""D:\test\2.vbs""")
WScript.Sleep 800

WshShell.Run ("""D:\test\3.vbs""")
Wscript.Echo "Выполнено"

Tonny_Bennet 24-11-2011 11:56 1802262

По идее мы не должны стартовать второй скрипт пока работает первый. Но тут говорят что на VBS это или нереально или нужно прибегать к костылям типа файла с метками о работе.

Стоит копать в сторону: как узнать работает ли сейчас скрипт!

Dt83 24-11-2011 12:12 1802277

Я вообще думала что метод WshShell.Run как раз таки подразумевает полную отработку, или я ошибаюсь? т.е. сначала он исполняет скрипт 1 до полной отработки, затем переходит ко второму и т.д. Разве не так должно быть?

Iska 24-11-2011 19:07 1802610

Dt83, используйте третий параметр «bWaitOnReturn» метода .Run() объекта WshShell — «True», без последующих «WScript.Sleep»:
Код:

WshShell.Run ("""D:\test\1.vbs""", 1, True)

Delirium 25-11-2011 01:00 1802785

Либо создать 3 bat файла и запускать их в четвертом bat файле примерно так
Код:

: start /wait 1.bat
, потом "start /wait 2.cmd", потом третий. В таком случае продолжение пойдет только после закрытия первого файла.

Dt83 07-12-2011 15:38 1811036

Спасибо!

Вроде получилось:)

Взяла способо у Iska, а именно использовала параметр bWaitOnReturn.


Время: 18:35.

Время: 18:35.
© OSzone.net 2001-