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

Компьютерный форум 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:
Поискал в сети, это речь об одном и том же? »

Нет ) на самом деле это обычная программа для Маннинга на процессорах исходное название не помню но в CPUSTATS.EXE это я уже сам переименовал. 2 папки день и ночь нужны потому что в первом случаи майнинг идет на 2 потока а ночью на 4. и эти настройки прописаны в файле config. Насчет окна CMD если запускать в ручную то да в окне есть информация а если запускать с планировщика задачь то он работает в скрытом режиме.

Далее. Сейчас нашел немного другую программу суть её в том что она должна запускаться в командной строке с параметрами:

xxxx.exe -o stratum+tcp://bcn.pool.minergate.com:45550 -u (user) -p x -t 2 - это запуск днем
xxxx.exe -o stratum+tcp://bcn.pool.minergate.com:45550 -u (user) -p x -t 4 - это запуск ночью

Разница в том что программа та что сейчас она берет настройки из файла, а программа которую нашел запускается с параметрами..

Уважаемый megaloman может быть получиться сделать скрипт который будет просто подставлять нужные команды для запуска файла. Тоесть файл будет 1 но запускаться должен либо с t2 либо с t4

Временной интервал с 8 утра до 18:00 с t2 а с 21:00 до 6:00 с параметром t4


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

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


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



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

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


Ветеран


Contributor


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

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


p.igor.kin, а моим батником по времени программа запускается? Вы хотите получить те же грабли, какая разница, что запускать, если оно не запустится. У меня была другая идея: сначала запускаем батник, который копирует в другое место программу с нужным конфигом, а затем оттуда уже запускаем программу. В задании прописываем батник, и во втором задании запуск программы, кажется в планировщике есть возможность запуска с задержкой. Не могу посмотреть, пишу с мобилки

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


Отправлено: 15:27, 21-07-2017 | #42


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


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

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


Цитата megaloman:
который копирует в другое место программу с нужным конфигом »
Это я могу сам сделать вручную) По мне дак все равно откуда запускать программу Только вот странно права безопасности везде одинаковые что на windows что на Program Files

Цитата megaloman:
а моим батником по времени программа запускается? »
Да Вашим батником "А тут уже наваял" программа запускается через планировщик. вот лог:

+++ 21.07.2017 16:11:13,61 C:\Program Files\cpustats\start.bat Started
!!! Testing If 1080000 LEQ 1161113 If 1161113 LSS 1180000 Call :Starting "C:\Program Files\cpustats\dau\cpustats.exe"
+++ 21.07.2017 "C:\Program Files\cpustats\dau\cpustats.exe" Selected
+++ 21.07.2017 16:11:13,69 "C:\Program Files\cpustats\dau\cpustats.exe" Try start
!!! Testing If 1200000 LEQ 1161113 If 1161113 LSS 1240000 Call :Starting "C:\Program Files\cpustats\night\cpustats.exe"
!!! Testing If 1000000 LEQ 1161113 If 1161113 LSS 1060000 Call :Starting "C:\Program Files\cpustats\night\cpustats.exe"
=== 21.07.2017 16:11:13,71 C:\Program Files\cpustats\start.bat Exit

Получается что все работает? Остается проверить только время и какая программа запускаеться

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


Отправлено: 16:12, 21-07-2017 | #43


Ветеран


Contributor


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

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


p.igor.kin, Вы счастливы? Я рад за Вас
Для CMD я бы посоветовал:

1. удалить или закомментировать тестовую выдачу в лог-файл
Код: Выделить весь код
rem >>"%LogFile%" Echo !!! Testing   If %Tb% LEQ %4 If %4 LSS %Te% Call :Starting "%Prg%"
2. сделать, чтобы лог-файл писался рядом с батником, если хватает прав.
Код: Выделить весь код
rem Set "LogFile=Z:\zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.log"

Set "LogFile=%~dpnx0.log"
3. Если интересен лог-файл только за последний запуск, чтобы он не разрастался, убрать один знак > из строки:
Код: Выделить весь код
>>"%LogFile%" (Echo: &Echo +++ %Date% %Time% %~dpnx0 Started)
Цитата p.igor.kin:
Остается проверить только время и какая программа запускаеться »
Что проверять, в логе всё написано:

+++ 21.07.2017 16:11:13,61 C:\Program Files\cpustats\start.bat Started - стартовал батник
+++ 21.07.2017 "C:\Program Files\cpustats\dau\cpustats.exe" Selected - для запуска выбрана именно эта программа (виноват, забыл добавить отображение времени, в скрипте исправил)
+++ 21.07.2017 16:11:13,69 "C:\Program Files\cpustats\dau\cpustats.exe" Try start - пытаемся её запустить
=== 21.07.2017 16:11:13,71 C:\Program Files\cpustats\start.bat Exit - батник отработал
Все эти исправления отобразил в вышеприведенном скрипте "Уже наваял"
Что касается VBS-скрипта, то проблема осталась
1. Судя по Вашим сообщениям, если скрипт запускать руками, то программа cpustats.exe нормально запускается и скрипт завершается
2. При запуске скрипта из планировщика от имени системы скрипт запускается и постоянно находится в памяти. Программа cpustats.exe не запускается.
3. При запуске скрипта из планировщика от имени системы скрипт запускается, запускает программу calc.exe и благополучно завершается.
То есть, логика скрипта вроде бы работает, но причины проблем с запуском именно программы cpustats.exe не определены.

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


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

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:59, 21-07-2017 | #44


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


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

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


Уважаемый megaloman хочу выразить Вам огромную благодарность за помощь в написании данного скрипта. Спасибо Вам большое!

Скрипт работает как надо!

Единственное хотелось бы немного его изменить отключить файл лог и сделать завершение процессов перед запуском. (на всякий случай)

я немного переименовал exe файлы для понятливости. Скажите если я в самом начале Вашего скрипта сделаю так:

@Echo Off
taskkill /f /im cpudau.exe > Nul
taskkill /f /im cpunight.exe > Nul
timeout /T 2
Set /A N=3

Будут ли у меня убиваться данные процессы если они есть, а затем запускаться новые? и будет ли такой скрипт вообще правильным?

И как полностью убрать файл лог? (программа скрытая лишний лог ни к чему)

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


Отправлено: 10:20, 25-07-2017 | #45


Ветеран


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

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


Значит, таки майнер лепите?

Отправлено: 17:34, 25-07-2017 | #46


Ветеран


Contributor


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

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


p.igor.kin: "...хотелось бы немного его изменить..."

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

Set /A N=3

Set "Prg1=C:\Program Files\7-Zip\7zG.exe"
Set "Tb_1=08:00:00"
Set "Te_1=16:00:00"

Set "Prg2=C:\Program Files\WinRar\WinRar.exe"
Set "Tb_2=17:00:00"
Set "Te_2=24:00:00"

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

Set "LogFile=%~dpnx0.log"

rem Если не нужен лог-файл, имя лог-файла сделать пустым
Set "LogFile="

Set Abend="7zG.exe" "WinRar.exe"
For %%k In (%Abend%) Do taskkill /f /im %%k >nul 2>&1

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

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

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

If Not "%LogFile%"=="" >>"%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"
	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
	If Not "%LogFile%"=="" >>"%LogFile%" Echo +++ %Date% %1 Selected

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

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


Отправлено: 20:45, 25-07-2017 | #47



Компьютерный форум 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




 
Переход