Войти

Показать полную графическую версию : Проверка изменений в папке и перезагрузка программы


Andreji
05-08-2016, 06:11
Добрый день!
Помогите решить задачу.
нужно проверять файл если время изменения равно или меньше 10 минут от системного нужно выполнить перезагрузку srv.exe и записывает в файл время перезагрузки, и этот batnik выполняется постоянно и спрятан в треи.

alpap
05-08-2016, 14:50
нужно проверять файл »
с какой периодичностью?

Andreji
05-08-2016, 17:53
Добры день!
Проверять надо с периодичность менее 10 мин (то есть 1-9минут) и в начеле после запуска batnika надо задержку ставить где-то 15 минут что бы не зациклился.
Мое понимание работы batnika
Старт
задержка 15 минут
Бесконечный цикл
Узнаем время и дату изменения
сравниваем с системными часами
С начало сравнивает час если разница больше часа пропускаем действия и переходи сразу на задержку внутри цикла
Сравниваем минуты если разница меньше 10 минут делаем рестарт srv.exe и записываем время рестарта в блокнот
задержка (1-9)


Скорей сего я неправ где-то буду на 99% уверен)
Chcp 1251
:loop
Set $SRC="C:\Users\Андрей\Desktop\macz.avi" файл для теста
for /f %%x in (%$SRC%) do call :check "%%~ta" время изменения

set $in=%~1
set $tc=%$in:~14,2% & set $tm=%time:~3,2%

if %$tm% lss 10 set $tm=%time:~4,1%
if %$tc% lss 10 set $tr=%$in:~15,1%

set /x "$min= %$tm% - %$tr%"
If %$min% LSS 0 set /a $ch=60-(%$ch%*(-1)) адекватно минуты определять
if /i %$min% LEQ 10 taskkill /f /im srv.exe

start /b srv.exe))
Goto :loop
( это пока с минутами (я пока разбираюсь с написанием bat ( как говорится справочник в зубы и читать))

alpap
06-08-2016, 01:58
Andreji,
расскажите детально что именно вы пытаетесь сделать, потому что проколов тут миллион:
файла нет
с файлом в это время работают
процесс закрылся по другой причине
задержка более или менее разницы
сильная нагрузка на процессор при постоянной работе самого батника
...

Я почему спросил с какой периодичностью
Если файл есть, дата_время изменения точно поменяется в течении 10 мин, то запуская батник, с помощью планировщика, ровно раз в 10 мин, который будет убивать процесс независимо от дата_время изменения файла - подходит? Поэтому и надо знать что вы хотите сделать, пока нет четкой задачи.

Andreji
06-08-2016, 10:06
Суть проблемы бороться с нестабильностью ПО , Программа когда зависает она отваливается от базы данных, и в файле базы данных меняется время изменения проверено опытным путем.( при нормальной работе ПО в файле время не меняется)

alpap
06-08-2016, 11:11
10 мин выбраны тоже опытным путем или наобум? Произойти может и через час или 2 сек?
На errorlevel не пробовали проверять, выдает что-то при ошибке?, так проще будет фиксировать.

Andreji
08-08-2016, 03:50
Программа обычно зависает в первые 7-13 минут после запуска потом может зависнуть через час, но иногда и сутки работает без сбоев. errorlevel ??? нет не пробовал, и только узнал о существования такой функции.




© OSzone.net 2001-2012