Показать полную графическую версию : [решено] Скрипт запуска программ по времяни
p.igor.kin
21-07-2017, 14:09
Поискал в сети, это речь об одном и том же? »
Нет ) на самом деле это обычная программа для Маннинга на процессорах исходное название не помню но в 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 файл запустить..
megaloman
21-07-2017, 15:27
p.igor.kin, а моим батником по времени программа запускается? Вы хотите получить те же грабли, какая разница, что запускать, если оно не запустится. У меня была другая идея: сначала запускаем батник, который копирует в другое место программу с нужным конфигом, а затем оттуда уже запускаем программу. В задании прописываем батник, и во втором задании запуск программы, кажется в планировщике есть возможность запуска с задержкой. Не могу посмотреть, пишу с мобилки
p.igor.kin
21-07-2017, 16:12
который копирует в другое место программу с нужным конфигом »
Это я могу сам сделать вручную) По мне дак все равно откуда запускать программу :) Только вот странно права безопасности везде одинаковые что на windows что на Program Files
а моим батником по времени программа запускается? »
Да Вашим батником "А тут уже наваял" программа запускается через планировщик. вот лог:
+++ 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
Получается что все работает? Остается проверить только время и какая программа запускаеться
megaloman
21-07-2017, 21:59
p.igor.kin, Вы счастливы? Я рад за Вас :)
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)
Остается проверить только время и какая программа запускаеться »
Что проверять, в логе всё написано:
+++ 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 - батник отработалВсе эти исправления отобразил в вышеприведенном скрипте "Уже наваял"1. Судя по Вашим сообщениям, если скрипт запускать руками, то программа cpustats.exe нормально запускается и скрипт завершается
2. При запуске скрипта из планировщика от имени системы скрипт запускается и постоянно находится в памяти. Программа cpustats.exe не запускается.
3. При запуске скрипта из планировщика от имени системы скрипт запускается, запускает программу calc.exe и благополучно завершается.
То есть, логика скрипта вроде бы работает, но причины проблем с запуском именно программы cpustats.exe не определены.
p.igor.kin
25-07-2017, 10:20
Уважаемый megaloman хочу выразить Вам огромную благодарность за помощь в написании данного скрипта. Спасибо Вам большое!
Скрипт работает как надо!
Единственное хотелось бы немного его изменить отключить файл лог и сделать завершение процессов перед запуском. (на всякий случай)
я немного переименовал exe файлы для понятливости. Скажите если я в самом начале Вашего скрипта сделаю так:
@Echo Off
taskkill /f /im cpudau.exe > Nul
taskkill /f /im cpunight.exe > Nul
timeout /T 2
Set /A N=3
Будут ли у меня убиваться данные процессы если они есть, а затем запускаться новые? и будет ли такой скрипт вообще правильным?
И как полностью убрать файл лог? (программа скрытая лишний лог ни к чему)
Значит, таки майнер лепите?
megaloman
25-07-2017, 20:45
@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
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.