Показать полную графическую версию : запуск программы или файла в определенное время или через заданный интервал
igor-kineshma
05-09-2012, 14:22
Народ помогите пожалуйста написать скрипт vbs или создать bat который бы в определённое время или через заданный интервал времени запускал определённую программу или файл. Я сам ламер в этом. Заранее спасибо.
Используйте для этих целей «Назначенные задания». За редким исключением, ни скрипт, ни пакетный файл для этого не нужен.
igor-kineshma
05-09-2012, 14:35
За редким исключением, ни скрипт, ни пакетный файл для этого не н »
У меня компов много в организации мне проще им батники или скрипты удалённо закинуть
Ну-ну. Как хотите. А мне проще один раз создать назначенное задание для заданных машин.
megaloman
05-09-2012, 23:29
Iska прав. Можно, конечно, нарисовать убогий .vbs-скрипт, который через заданный интервал бесконечно будет нечто запускать ( у меня в примере WinRar), забросить его каждому в автозагрузку, но завершить его можно только из диспетчера задач (wscript.exe) у пользователя) (Как поставлена задача, так она решена), Interval = 1 ' Интервал (мин)
Visible = 0 ' Если 0 то не будет видно окна запускаемой задачи, 1 - видно
Set WS = CreateObject("WScript.Shell")
Do
WScript.Sleep Interval * 60000
R = WS.Run("""C:\Program Files\WinRAR\WinRAR.exe"" a C:\Notepad.rar C:\WINDOWS\notepad.exe", Visible, False)
Loop
igor-kineshma
06-09-2012, 09:15
megaloman, Спасибо большое. А как сделать так что бы она запускалась скажем так всего 1 ну или 2 раза, а потом сама удалялась с диспетчера задач? Заранее спасибо.
megaloman
06-09-2012, 09:58
Чтобы скрипт сделался 1 раз, достаточно убрать Do и Loop. После запуска программы скрипт завершится. Если надо сделать несколько раз, то Interval = 1 ' Интервал (мин)
N = 2 ' Число повторов
Visible = 0 ' Если 0 то не будет видно окна запускаемой задачи, 1 - видно
Set WS = CreateObject("WScript.Shell")
For i = 1 To N
WScript.Sleep Interval * 60000
R = WS.Run("""C:\Program Files\WinRAR\WinRAR.exe"" a C:\Notepad.rar C:\WINDOWS\notepad.exe", Visible, False)
Next
igor-kineshma
06-09-2012, 10:01
megaloman, Огромное Вам спасибо. Очень выручили. А скажите а что бы скрипт запускался не через заданный интервал а в указанное время это очень сложно?
megaloman
06-09-2012, 10:33
Interval = 1 ' Интервал опроса (мин)
Where = "09:29:00" ' После какого времени сделать
Visible = 0 ' Если 0 то не будет видно окна запускаемой задачи, 1 - видно
Set WS = CreateObject("WScript.Shell")
TWhere = TimeValue(Where)
Do
WScript.Sleep Interval * 60000
If Time >= TWhere Then
R = WS.Run("""C:\Program Files\WinRAR\WinRAR.exe"" a C:\Notepad.rar C:\WINDOWS\notepad.exe", Visible, False)
Exit Do
End If
Loop
Скрипт делает опрос времени с заданным дискретом, но, в принципе, строки
Interval = 1 ' Интервал опроса (мин)
WScript.Sleep Interval * 60000
можно убрать (при этом совпадение заданного и времени выполнения будет максимальным), но это, ИМХО, плохо - лишняя загрузка процессора. Естественно, чтобы скрипт сработал, он должен быть запущен (например, в Автозагрузке). После однократного выполнения запущенной задачи скрипт выгрузится.
Ну-ну. Как хотите. А мне проще один раз создать назначенное задание для заданных машин.
igor-kineshma
06-09-2012, 11:50
megaloman,
Подскажи пожалуйста я создал скрипт по запуску в данное время, но вот в чём беда, программа сворачивается в панель управления при запуске и ещё выскакивает окно в котором написано время, - это можно исправить, что бы программа запускалась по верх всех окон?
megaloman
06-09-2012, 12:12
выскакивает окно в котором написано время - виноват, забыл убрать отладочную печать, давно исправтл. программа сворачивается в панель управления
Написать Visible = 1 (или попробуйте =3)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.