CMD/BAT - Проверка изменений в папке и перезагрузка программы

Ответить
Аватара пользователя
Andreji

CMD/BAT - Проверка изменений в папке и перезагрузка программы

Сообщение Andreji »

Добрый день!

Помогите решить задачу.

нужно проверять файл если время изменения равно или меньше 10 минут от системного нужно выполнить перезагрузку srv.exe и записывает в файл время перезагрузки, и этот batnik выполняется постоянно и спрятан в треи.
Аватара пользователя
Andreji

Re: CMD/BAT - Проверка изменений в папке и перезагрузка программы

Сообщение Andreji »

Добры день!

Проверять надо с периодичность менее 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

Re: CMD/BAT - Проверка изменений в папке и перезагрузка программы

Сообщение alpap »

Andreji,

расскажите детально что именно вы пытаетесь сделать, потому что проколов тут миллион:

файла нет

с файлом в это время работают

процесс закрылся по другой причине

задержка более или менее разницы

сильная нагрузка на процессор при постоянной работе самого батника

...



Я почему спросил с какой периодичностью

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

Re: CMD/BAT - Проверка изменений в папке и перезагрузка программы

Сообщение Andreji »

Суть проблемы бороться с нестабильностью ПО , Программа когда зависает она отваливается от базы данных, и в файле базы данных меняется время изменения проверено опытным путем.( при нормальной работе ПО в файле время не меняется)
Аватара пользователя
alpap

Re: CMD/BAT - Проверка изменений в папке и перезагрузка программы

Сообщение alpap »

10 мин выбраны тоже опытным путем или наобум? Произойти может и через час или 2 сек?

На errorlevel не пробовали проверять, выдает что-то при ошибке?, так проще будет фиксировать.
Аватара пользователя
Andreji

Re: CMD/BAT - Проверка изменений в папке и перезагрузка программы

Сообщение Andreji »

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

Вернуться в «Скриптовые языки администрирования Windows»