Перейти к содержимому


Важная информация:

На текущий момент шаблоны и консультации по всем вопросам не доступны.


Фотография

Батник Для Автоматического Отслеживания Процесса Работоспособности Зенобокса.


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 Анатолий ZHAG

Анатолий ZHAG

    Администратор

  • Администраторы
  • 366 сообщений
  • ГородКемерово

Отправлено 22 Март 2015 - 05:50

Приведенный ниже код батника проверяет - наличие в процессах Zennoposter.exe, если процесс найден, батник завершает своё выполнение, иначе, батник запускает зенку.

 

Кроме того, проверяется время между последним изменением файла и укзанным в настройках батника. Если прошло установленное время, а файл не изменился, батник убивает зенку в процессах и перезапускает её заново.
 

Для чего это нужно?

К примеру, батник запустился, проверил, что программа запущена...Но! Бывают такие ситуации, когда в силу неправильной логики шаблона, он может зависнуть, или же просто упадёт инстанс и логика будет крутиться на неудачном выходе, что требует уже стороннего вмешательства, т.е. прервать шаблон, или же перезапустить программу. Для этого Вы можете указать путь к файлу, который обязательно будет изменяться шаблоном при правильном его выполнении и не будет изменяться при возникновении ошибок, батник проверит, что файл не менялся в течении установленного времени и перезапустит программу.

@echo off

SETLOCAL EnableExtensions
set EXE=ZennoPoster.exe
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
echo Not running
:: Указываем полный путь к файлу Zennoposter.exe
start "" "C:\Program Files (x86)\ZennoLab\ZennoPoster Pro\Progs\ZennoPoster.exe" -screen 0 -clipboard -multiwindow
exit 0
:FOUND
echo Running

:: указываем полный путь к файлу, по которому будут проверяться последние изменения
set "file=D:\search.log"
:: Устанавливаем необходимый интервал в секундах
:: (5 часов = 18000 секунд):
set diff=18000
for %%i in ("%file%") do (
for /f "tokens=1,2" %%j in ("%%~ti") do (
for /f %%l in ('
mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(DateDiff("s","%%j"+Chr(32)+"%%k",now))&Close()"
') do (
:: Проверяем, прошло ли установленное время после последнего изменения файла
if %%l gtr %diff% (
taskkill /f /im "ZennoPoster.exe"
start "" "C:\Program Files (x86)\ZennoLab\ZennoPoster Pro\Progs\ZennoPoster.exe" -screen 0 -clipboard -multiwindow )
)
)
)
exit 0

Оригинал статьи взят с официального форума Zennolab


  • shaba и aselifys это нравится

Нет проще ни чего, чем сказать что это сделать просто!





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных