Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скрипт запуска программ по времяни

Ответить
Настройки темы
CMD/BAT - [решено] Скрипт запуска программ по времяни

Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день. Прошу прощения если пишу не в ту ветку форума. Нужна ваша помощь в написании скрипта который мог бы запускать определенный exe файл в зависимости от времени на компьютере. К сожалению я сам работал очень мало со скриптами и сам написать такой не смогу

Подробнее о задаче: допустим включается компьютер с 8 утра и до 5 вечера в любое время в этот момент должен запуститься файл 1.exe, и он же должен сам закончить свое выполнение часов в 16:30 а Если компьютер включается с 0 часов до 7 утра то должен запуститься файл 2.exe. и так же закончить свое выполнение часов в 6 утра. Предполагается что данный скрипт будет запускаться планировщиком задач при включении компьютера. оба файла лежат по пути (C:\Program Files\cpustats)

Помогите пожалуйста. Очень нужно для работы

Если нужны доп. данные пишите. Заранее большое спасибо

Отправлено: 12:42, 29-06-2017

 

Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Может где-то в безопасности есть ограничение на запуск программ скриптами? »
Сомневаюсь
Цитата megaloman:
(Кстати, Вы убрали комментарий от Run?) »
Да убрал
Цитата megaloman:
А напрямую в задании программа без скрипта запускается? »
Да напрямую все запускается. от имени "СИСТЕМА"

http://forum.oszone.net/post-2752418-26.html - вот тут я описал как у меня настроено сейчас.

Отправлено: 09:21, 19-07-2017 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


p.igor.kin, давайте ссылки на Ваши cpustats.exe и прочее, дабы коллега megaloman мог попробовать воспроизвести Ваши действия.

Отправлено: 09:31, 19-07-2017 | #32


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
p.igor.kin, давайте ссылки на Ваши cpustats.exe и прочее, дабы коллега megaloman мог попробовать воспроизвести Ваши действия. »
Думаю особого смысла в этом нет так как у меня доменная сеть и win 64 а у нашего коллеги megaloman нет домена и win x32

Отправлено: 09:40, 19-07-2017 | #33


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Можно думать, а можно проверить. Дело Ваше.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:39, 19-07-2017 | #34


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


p.igor.kin,
Цитата Iska:
Можно думать, а можно проверить. Дело Ваше. »
ИМХО, решение надо искать в политике безопасности. Давайте попробуем заменить Вашу программу чем-нибудь простым и стандартным, например, калькулятором.
Код: Выделить весь код
ProgStart = Array("C:\Windows\System32\calc.exe", "08:00:00", "18:00:00", _
                "C:\Windows\System32\calc.exe", "20:00:00", "23:59:59", _
                "C:\Windows\System32\calc.exe", "00:00:00", "06:00:00")
Единственное, он, наверное, у Вас по другому пути. Он запускается? Я подозреваю, что нет. Но если, паче чаяния, он запустится, увидите в лог-файле нормальное сообщение о окончании скрипта и в диспетчере - calc.exe. По крайней мере будет ясно, куда копать.
Альтернатива vbs - cmd. Если этот батник запустит Вашу программу, можно попробовать наваять решение задачи в CMD
Код: Выделить весь код
@Echo Off

Set "Prog=C:\Program Files\cpustats\dau\cpustats.exe"

Set "LogFile=Z:\zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.log"

Call :Starting "%Prog%"

GoTo :Eof

:Starting
	>>"%LogFile%" (Echo: &Echo +++ %Date% %Time% %~dpnx0 Selected %1)
	

	If Exist %1 (  
		Pushd "%~dp1"
		>>"%LogFile%" Echo +++ %Date% %Time% %1 Try start
		Start " " %1 || >>"%LogFile%" Echo --- %Date% %Time% %1 Start not success
		Popd
	) Else (
		>>"%LogFile%" Echo ??? %Date% %Time% %1 Not Found
	)
	>>"%LogFile%" Echo === %Date% %Time% %~dpnx0 Exit
GoTo :Eof
Попробуйте создать задание на этот батник. Если получится, сообщите, пожалуйста, формат времени в системе. Внутренний голос мне шепчет, что это будет с тем же результатом. ИМХО, надо смотреть настройку безопасности
А тут уже наваял
Код: Выделить весь код
@Echo Off

Set /A N=3

Set "Prg1=C:\Program Files\cpustats\dau\cpustats.exe"
Set "Tb_1=08:00:00"
Set "Te_1=18:00:00"

Set "Prg2=C:\Program Files\cpustats\night\cpustats.exe"
Set "Tb_2=20:00:00"
Set "Te_2=24:00:00"

Set "Prg3=C:\Program Files\cpustats\night\cpustats.exe"
Set "Tb_3=00:00:00"
Set "Te_3=06:00:00" 

rem Set "LogFile=Z:\zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.log"
Set "LogFile=%~dpnx0.log"

Set "Ttime=%Time:~0,-3%"
Call :ReTime "Ttime"

>>"%LogFile%" (Echo: &Echo +++ %Date% %Time% %~dpnx0 Started)

FOR /L %%i IN (1,1,%N%) DO Call :Program "Prg%%i" "Tb_%%i" "Te_%%i" %Ttime% 

>>"%LogFile%" Echo === %Date% %Time% %~dpnx0 Exit

GoTo :Eof

:Program
	Call Set "Prg=%%%~1%%"
	Call Set "Tb=%%%~2%%"
	Call Set "Te=%%%~3%%"
	Call :ReTime "Tb"
	Call :ReTime "Te"
rem >>"%LogFile%" Echo !!! Testing   If %Tb% LEQ %4 If %4 LSS %Te% Call :Starting "%Prg%"
	If %Tb% LEQ %4 If %4 LSS %Te% Call :Starting "%Prg%"
GoTo :Eof

:ReTime
	Call Set "@Ident=%%%~1%%"
	Set "@Ident=%@Ident: =0%"
	Set "@Ident=1%@Ident::=%"
	Call Set /A %~1=%@Ident%
GoTo :Eof

:Starting
	>>"%LogFile%" Echo +++ %Date% %Time% %1 Selected

	If Exist %1 (  
		Pushd "%~dp1"
		>>"%LogFile%" Echo +++ %Date% %Time% %1 Try start
		Start " " %1 || >>"%LogFile%" Echo --- %Date% %Time% %1 Start not success
		Popd
	) Else (
		>>"%LogFile%" Echo ??? %Date% %Time% %1 Not Found
	)
GoTo :Eof

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 21-07-2017 в 22:23.


Отправлено: 15:31, 19-07-2017 | #35


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Прошу прощения за долгий ответ взял скрипт "А тут уже навязал" подставил свою программу назвал как start.bat запустил и получил:

+++ 20.07.2017 16:11:57,88 C:\Program Files\cpustats\start.bat Started
=== 20.07.2017 16:11:57,94 C:\Program Files\cpustats\start.bat Exit

Если сохраняю как start.vbs то получаю ошибку...

Сейчас буду проверять запуск предыдущего скрипта на калькуляторе......

Проверил

при коде:
Код: Выделить весь код
ProgStart = Array("C:\Windows\System32\calc.exe", "08:00:00", "18:00:00", _
                "C:\Windows\System32\calc.exe", "20:00:00", "23:59:59", _
                "C:\Windows\System32\calc.exe", "00:00:00", "06:00:00")
+++ 20.07.2017 16:23:46 Скрипт запущен
+++ 20.07.2017 16:23:46 C:\Windows\System32\calc.exe Запущено
=== 20.07.2017 16:23:46 Скрипт завершается

и calc.exe висит в процессах

Посмотрел в свойствах файлов вкладка безопасность Там есть "система" и стоит полный доступ тоесть по сути файлы должны запускаться от имени система!

Последний раз редактировалось p.igor.kin, 20-07-2017 в 16:29.


Отправлено: 16:13, 20-07-2017 | #36


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Вы свои программы и время прописали в батнике »
Да

Цитата megaloman:
Я Вас просил запустить предыдущий скрипт »
При запуске скрипта в ручную:
+++ 20.07.2017 16:31:53,62 C:\Program Files\cpustats\start.bat Selected "C:\Program Files\cpustats\dau\cpustats.exe"
+++ 20.07.2017 16:31:53,63 "C:\Program Files\cpustats\dau\cpustats.exe" Try start
=== 20.07.2017 16:31:53,63 C:\Program Files\cpustats\start.bat Exit

При запуске скрипта через планировщик от имени системы:
+++ 20.07.2017 16:33:07,62 C:\Program Files\cpustats\start.bat Selected "C:\Program Files\cpustats\dau\cpustats.exe"
+++ 20.07.2017 16:33:07,62 "C:\Program Files\cpustats\dau\cpustats.exe" Try start
=== 20.07.2017 16:33:07,67 C:\Program Files\cpustats\start.bat Exit

Время в системе не совсем понял вопроса? 16:34

Отправлено: 16:34, 20-07-2017 | #37


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Цитата p.igor.kin:
При запуске скрипта через планировщик от имени системы: »
Какого скрипта? Тестового?Программа в диспетчере появилась?
Для отладки скрипта "Уже наваял" я вставил отладочную строку (см. выше, выделено красным). Что появилось в лог-файле?
В первой половине дня в каком виде выдаётся результат команды в командном окне
Echo "%Time%"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 16:41, 20-07-2017 | #38


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


По порядку скрипт что ниже работает как надо... Программа в диспетчере появляется хоть при запуске в ручную, хоть при запуске через планировщик

Скрипт
Код: Выделить весь код
@Echo Off

Set "Prog=C:\Program Files\cpustats\dau\cpustats.exe"

Set "LogFile=Z:\zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.log"

Call :Starting "%Prog%"

GoTo :Eof

:Starting
	>>"%LogFile%" (Echo: &Echo +++ %Date% %Time% %~dpnx0 Selected %1)
	

	If Exist %1 (  
		Pushd "%~dp1"
		>>"%LogFile%" Echo +++ %Date% %Time% %1 Try start
		Start " " %1 || >>"%LogFile%" Echo --- %Date% %Time% %1 Start not success
		Popd
	) Else (
		>>"%LogFile%" Echo ??? %Date% %Time% %1 Not Found
	)
	>>"%LogFile%" Echo === %Date% %Time% %~dpnx0 Exit
GoTo :Eof


Дальше скрипт "А тут уже наваял" (ни чего не менял)

При запуске в ручную пишет в логе:
+++ 20.07.2017 16:51:00,36 C:\Program Files\cpustats\start.bat Started
!!! Testing If 1080000 LEQ 1165100 If 1165100 LSS 1160000 Call :Starting "C:\Program Files\7-Zip\7zG.exe"
!!! Testing If 1170000 LEQ 1165100 If 1165100 LSS 1240000 Call :Starting "C:\Program Files\WinRar\WinRar.exe"
!!! Testing If 1000000 LEQ 1165100 If 1165100 LSS 1060000 Call :Starting "C:\Program Files\WinRar\WinRar.exe"
=== 20.07.2017 16:51:00,42 C:\Program Files\cpustats\start.bat Exit

При запуске из планировщика пишет в логе:
+++ 20.07.2017 16:52:44,72 C:\Program Files\cpustats\start.bat Started
!!! Testing If 1080000 LEQ 1165244 If 1165244 LSS 1160000 Call :Starting "C:\Program Files\7-Zip\7zG.exe"
!!! Testing If 1170000 LEQ 1165244 If 1165244 LSS 1240000 Call :Starting "C:\Program Files\WinRar\WinRar.exe"
!!! Testing If 1000000 LEQ 1165244 If 1165244 LSS 1060000 Call :Starting "C:\Program Files\WinRar\WinRar.exe"
=== 20.07.2017 16:52:44,81 C:\Program Files\cpustats\start.bat Exit

результат Echo "%Time%" -->> "16:53:57,01" И если поменять время на 8 утра то Echo "%Time%"-->> " 8:54:57,29"

Дальше Если в Ваш старый скрипт вставить строчки (тесть заменить мои программы на калькулятор)
строчки
Код: Выделить весь код
ProgStart = Array("C:\Windows\System32\calc.exe", "08:00:00", "18:00:00", _
                "C:\Windows\System32\calc.exe", "20:00:00", "23:59:59", _
                "C:\Windows\System32\calc.exe", "00:00:00", "06:00:00")

И запустить его через планировщик от имени "СИСТЕМА"
В логе появляется:
+++ 20.07.2017 16:23:46 Скрипт запущен
+++ 20.07.2017 16:23:46 C:\Windows\System32\calc.exe Запущено
=== 20.07.2017 16:23:46 Скрипт завершается

и calc.exe висит в процессах

Последний раз редактировалось p.igor.kin, 20-07-2017 в 17:00.


Отправлено: 16:53, 20-07-2017 | #39


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Цитата p.igor.kin:
Дальше скрипт "А тут уже наваял" (ни чего не менял)
При запуске в ручную пишет в логе: »
Вы не прописали свои программы и правильное время. Из лога следует, что в указанные временнЫе интервалы нет запускаемой задачи. Расшифрую, например:
!!! Testing If 1170000 LEQ 1165244 If 1165244 LSS 1240000
Перед числами 1 следует отбросить, итого получаем время. Условие, в переводе на понятный формат, получится:

текущее время 16:52:44
Если 17:00:00<=16:52:44 и Если 16:52:44<24:00:00 то есть, в мат виде
17:00:00<=16:52:44<24:00:00
- очевидно условие не выполняется
Так и по остальным интервалам
Задайте корректные интервалы.
Цитата p.igor.kin:
И запустить его через планировщик от имени "СИСТЕМА"
В логе появляется:
+++ 20.07.2017 16:23:46 Скрипт запущен
+++ 20.07.2017 16:23:46 C:\Windows\System32\calc.exe Запущено
=== 20.07.2017 16:23:46 Скрипт завершается
и calc.exe висит в процессах »
Это vbs? Получается очень интересно: калькулятор запускается, а ваша программа не хочет. Надо подумать.
Попутный вопрос: как я понял, программа cpustats.exe запускается в командном окне. При запуске появляются какие-либо сообщения (в норме и в аварийном случае)?
Поискал в сети, это речь об одном и том же?
Цитата:
Информация о CPUSTATS.EXE
Это нежелательная программа.
Этот файл был идентифицирован как программа, которая нежелательна для работы на вашем компьютере. Это состоит из программ, вводящих в заблуждение, вредных или нежелательных.

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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 21-07-2017 в 10:19.


Отправлено: 17:29, 20-07-2017 | #40



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скрипт запуска программ по времяни

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - [решено] Политика запуска программ paull2006 Microsoft Windows 8 и 8.1 8 02-10-2015 12:41
CMD/BAT - [решено] скрипт для запуска 2-х программ (.exe) meGangstaWorld Скриптовые языки администрирования Windows 8 10-06-2013 21:55
Загрузка - Ускорение запуска программ d_stor Microsoft Windows 7 0 06-01-2013 01:21
CMD/BAT - Как написать CMD скрипт для запуска определенного файла по дате и времени traxomot Скриптовые языки администрирования Windows 1 15-12-2010 11:50
VBS/WHS/JS - Скрипт для последовательного запуска нескольких программ skatet Программирование и базы данных 10 21-11-2007 17:02




 
Переход