imho.ws |
|
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
23.11.2005, 13:41 | # 1 |
::VIP::
IMHO Спортсмен 2005 Регистрация: 27.09.2004
Адрес: www
Сообщения: 1 478
|
Создание bat файла, который бы запускал другой файл после определённого срока
подскажите, что нужно прописать в bat файл, который бы запускал другой файл после определённого срока, например 60 секунд, прочитал другие темы на форуме и яндекса спросил, но там не нашёл ответа
__________________
Ничто не бывает дешевле и так ценно, как своевременное слово "спасибо" |
23.11.2005, 13:58 | # 3 |
::VIP::
Регистрация: 19.10.2003
Адрес: Питер
Пол: Male
Сообщения: 1 467
|
Nicodim
Стандартными средствами никак вроде. Вот тут лежит програмка, которую можно кинуть в папку к батнику, и вызывать её, в параметре указывая время в секундах, на которое надо приостанавливать выполнение. Одим минус, при запуске выдает сообщение "Pause Х sec....", которое не отключить. |
23.11.2005, 14:33 | # 7 | |
::VIP::
IMHO Спортсмен 2005 Регистрация: 27.09.2004
Адрес: www
Сообщения: 1 478
|
Цитата:
а может есть какие-то стандартные параметры запуска процесса через определённый срок средствами винды?
__________________
Ничто не бывает дешевле и так ценно, как своевременное слово "спасибо" |
|
23.11.2005, 14:52 | # 8 |
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
|
Nicodim
Скрипт по ссылке Merlin Cori как раз и расчитан на включение в автозапуск, там внизу есть пример запуска приложения с заданной задержкой. А вообще ещё есть замечательная программа Startup Organizer, которая умеет управлять ходом автозагрузки, выставлять задержки и многое другое. |
23.11.2005, 14:54 | # 10 |
Junior Member
Регистрация: 16.10.2002
Адрес: Россия-матушка
Пол: Male
Сообщения: 96
|
Nicodim
VBS вполне стандартный способ, и является средством винды начиная кажется с win98 =) Чуть уточню только вызов скрипта, приведенного в _http://aboutwin.pp.ru/fido7.ru.windows.f2000/14888.html Код:
cscript Delay.vbs /E:C:\Windows\Notepad.exe /D:10 Код:
wscript Delay.vbs /E:C:\Windows\Notepad.exe /D:10 Код:
Option Explicit Const cdefpause = 10 Dim pause, argvobj Set argvobj = WScript.Arguments if argvobj.Count < 1 then pause=cdefpause else pause=CLng(argvobj(0)) end if Wscript.Echo WScript.ScriptName & ": Задержка выполнения на " & pause & " секунд" MyPause(pause) sub MyPause(delay) dim st st = now do while datediff("s", st, now) < delay loop end sub Из батника вызываю так: Код:
cscript /nologo delay.vbs 300
__________________
1 миллибайт = 1/1024 байта Последний раз редактировалось LightImage; 23.11.2005 в 15:17. |
23.11.2005, 15:57 | # 11 |
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
|
Гыхм... А как насчет того, чтобы воспользоваться стандартным планировщиком? И командой AT для управления им из консоли?
Код:
Команда AT предназначена для запуска команд и программ в указанное время по определенным дням. Для использования команды AT необходимо, чтобы была запущена служба расписаний. AT [\\имя_компьютера] [ [код] [/DELETE] | /DELETE [/YES]] AT [\\имя_компьютера] время [/INTERACTIVE] [ /EVERY:день[,...] | /NEXT:день[,...]] "команда" \\имя_компьютера Имя удаленного компьютера. Если этот параметр опущен, используется локальный компьютер. код Порядковый номер запланированной задачи. /delete Отмена запланированной задачи. Если код задачи опущен, отменяются все задачи, запланированные для указанного компьютера. /yes Отмена запроса на подтверждение при отмене всех запланированных задач. время Время запуска команды. /interactive Разрешение взаимодействия задачи с пользователем, работающим на компьютере во время запуска задачи. /every:день[,...] Запуск задачи осуществляется по указанным дням недели или месяца. Если дата опущена, используется текущий день месяца. /next:день[,...] Задача будет запущена в следующий указанный день недели (например в следующий четверг). Если дата опущена, используется текущий день месяца. "команда" Команда Windows NT или имя пакетного файла. Код:
@echo off set dSEC=40 set HOU=0 set MIN=0 set SEC=0 for /f "delims=:, tokens=1,2,3,*" %%i in ("%TIME%") do ( set HOU=%%i set MIN=%%j set SEC=%%k ) for /l %%i in (0,1,9) do if %SEC%==%%i set SEC=0%SEC% for /l %%i in (0,1,9) do if %MIN%==%%i set MIN=0%MIN% set /a SEC=SEC+dSEC if /i "%SEC%" geq "60" ( set /a SEC=SEC-60 set /a MIN=MIN+1 ) if /i "%MIN%" geq "60" ( set /a MIN=MIN-60 set /a HOU=HOU+1 ) if /i "%HOU%" geq "24" ( set /a HOU=HOU-24 ) for /l %%i in (0,1,9) do if %SEC%==%%i set SEC=0%SEC% for /l %%i in (0,1,9) do if %MIN%==%%i set MIN=0%MIN% set nTIME=%HOU%:%MIN%:%SEC% echo %TIME% - %nTIME%
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! Последний раз редактировалось Ghost; 23.11.2005 в 16:05. Причина: cклероZzz... |
23.11.2005, 16:14 | # 12 | |
::VIP::
IMHO Спортсмен 2005 Регистрация: 27.09.2004
Адрес: www
Сообщения: 1 478
|
Цитата:
__________________
Ничто не бывает дешевле и так ценно, как своевременное слово "спасибо" |
|
23.11.2005, 16:51 | # 13 |
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
|
Вообще-то вот так:
Код:
@echo off set dSEC=30 set HOU=0 set MIN=0 set SEC=0 for /f "delims=:, tokens=1,2,3,*" %%i in ("%TIME%") do ( set HOU=%%i set MIN=%%j set SEC=%%k ) for /l %%i in (0,1,9) do if %SEC%==%%i set SEC=0%SEC% for /l %%i in (0,1,9) do if %MIN%==%%i set MIN=0%MIN% set /a SEC=SEC+dSEC if /i "%SEC%" geq "60" ( set /a SEC=SEC-60 set /a MIN=MIN+1 ) if /i "%MIN%" geq "60" ( set /a MIN=MIN-60 set /a HOU=HOU+1 ) if /i "%HOU%" geq "24" ( set /a HOU=HOU-24 ) for /l %%i in (0,1,9) do if %SEC%==%%i set SEC=0%SEC% for /l %%i in (0,1,9) do if %MIN%==%%i set MIN=0%MIN% set nTIME=%HOU%:%MIN%:%SEC% at %nTIME% /interactive %windir%\notepad.exe
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! |
23.11.2005, 17:48 | # 14 |
::VIP::
IMHO Спортсмен 2005 Регистрация: 27.09.2004
Адрес: www
Сообщения: 1 478
|
Ghost
сработало, вот только тут можно запускать только по 1 файлу так как каждому процессу присваивается свой ИД, но тут уже встречный вопрос, как в одном батнике прописать чтобы група файлов запускалась, через разные промежутки времени и желательно в секундах
__________________
Ничто не бывает дешевле и так ценно, как своевременное слово "спасибо" |
23.11.2005, 18:30 | # 15 |
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
|
В секундах пока не получается - не хочет планировщик с ними работать... Только с интервалом в минуту. Вот так:
Код:
@echo off if "%1"=="" exit start %1 if "%2"=="" exit set HOU=0 set MIN=0 for /f "delims=:, tokens=1,2,*" %%i in ("%TIME%") do ( set HOU=%%i set MIN=%%j ) for /l %%i in (0,1,9) do if %MIN%==%%i set MIN=0%MIN% set /a MIN=MIN+1 if /i "%MIN%" geq "60" ( set /a MIN=MIN-60 set /a HOU=HOU+1 ) if /i "%HOU%" geq "24" ( set /a HOU=HOU-24 ) for /l %%i in (0,1,9) do if %MIN%==%%i set MIN=0%MIN% set nTIME=%HOU%:%MIN%:00 at %nTIME% /interactive D:\myStart.cmd %2 %3 %4 %5 %6 %7 %8 %9 Код:
myStart.cmd %windir%\system32\freecell.exe %windir%\system32\sol.exe
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! Последний раз редактировалось Ghost; 23.11.2005 в 18:35. Причина: склероZzz... |
23.11.2005, 19:10 | # 16 | |
::VIP::
IMHO Спортсмен 2005 Регистрация: 27.09.2004
Адрес: www
Сообщения: 1 478
|
Ghost
что-то не получается с многозадачностями: например мне нужно запустить ACDSee через минуту, а через 2 винамп то как мне правильно написать? вот как я написал: Цитата:
__________________
Ничто не бывает дешевле и так ценно, как своевременное слово "спасибо" |
|
24.11.2005, 06:33 | # 17 |
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
|
Nicodim
Создаешь файл myStart.cmd (в папке D:\, например): Код:
@echo off if '%1'=='' exit start "myStart" %1 if '%2'=='' exit set HOU=0 set MIN=0 for /f "delims=:, tokens=1,2,*" %%i in ("%TIME%") do ( set HOU=%%i set MIN=%%j ) for /l %%i in (0,1,9) do if %MIN%==%%i set MIN=0%MIN% set /a MIN=MIN+1 if /i "%MIN%" geq "60" ( set /a MIN=MIN-60 set /a HOU=HOU+1 ) if /i "%HOU%" geq "24" ( set /a HOU=HOU-24 ) for /l %%i in (0,1,9) do if %MIN%==%%i set MIN=0%MIN% set nTIME=%HOU%:%MIN%:00 at %nTIME% /interactive D:\myStart.cmd %2 %3 %4 %5 %6 %7 %8 %9 Код:
D:\myStart.cmd "C:\Program Files\ACD Systems\ACDSee\7.0\ACDSee7.exe" "C:\Program Files\Winamp\winamp.exe"
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! Последний раз редактировалось Ghost; 24.11.2005 в 12:01. Причина: склероZzz... |
24.11.2005, 10:56 | # 18 |
::VIP::
IMHO Спортсмен 2005 Регистрация: 27.09.2004
Адрес: www
Сообщения: 1 478
|
Ghost:
дело вот в чём, запускается только Mystart.cmd и всё, и запускается он через 10 секунд, а не через 1 минуту, и предыдущие батники тоже запускались через 10 секунд, а не через минуту, где собака зарыта?
__________________
Ничто не бывает дешевле и так ценно, как своевременное слово "спасибо" |
24.11.2005, 11:56 | # 19 |
::VIP::
Звезда первого сезона Молчун-2004 Регистрация: 24.08.2002
Сообщения: 1 575
|
Nicodim
ХЗ. Проверял у себя - все работает: после запуска батника, запускается первая прога; ждет до начала следующей минуты (может быть меньше 60 секунд) и запускается вторая прога; дальше оставшиеся проги запускаются с интервалом 1 минута. А myStart.cmd и должен запускаться - а из него в третьей строке запускается сама прога.
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы! |