Показать полную графическую версию : Проверка изменений в папке и перезагрузка программы
Добрый день!
Помогите решить задачу.
нужно проверять файл если время изменения равно или меньше 10 минут от системного нужно выполнить перезагрузку srv.exe и записывает в файл время перезагрузки, и этот batnik выполняется постоянно и спрятан в треи.
нужно проверять файл »
с какой периодичностью?
Добры день!
Проверять надо с периодичность менее 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 ( как говорится справочник в зубы и читать))
Andreji,
расскажите детально что именно вы пытаетесь сделать, потому что проколов тут миллион:
файла нет
с файлом в это время работают
процесс закрылся по другой причине
задержка более или менее разницы
сильная нагрузка на процессор при постоянной работе самого батника
...
Я почему спросил с какой периодичностью
Если файл есть, дата_время изменения точно поменяется в течении 10 мин, то запуская батник, с помощью планировщика, ровно раз в 10 мин, который будет убивать процесс независимо от дата_время изменения файла - подходит? Поэтому и надо знать что вы хотите сделать, пока нет четкой задачи.
Суть проблемы бороться с нестабильностью ПО , Программа когда зависает она отваливается от базы данных, и в файле базы данных меняется время изменения проверено опытным путем.( при нормальной работе ПО в файле время не меняется)
10 мин выбраны тоже опытным путем или наобум? Произойти может и через час или 2 сек?
На errorlevel не пробовали проверять, выдает что-то при ошибке?, так проще будет фиксировать.
Программа обычно зависает в первые 7-13 минут после запуска потом может зависнуть через час, но иногда и сутки работает без сбоев. errorlevel ??? нет не пробовал, и только узнал о существования такой функции.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.