• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Bat-файл для мониторинга работы exe-файла

stars1981

Ученик
Регистрация
8 Июл 2016
Сообщения
5
Реакции
0
Баллы
0
Bat-файл для мониторинга работы exe-файла

Доброго времени суток!!! Помогите пожалуйста с написанием батника. Нужно: 1. запустить exe файл(это имеется)
2. И т.к Firefox прекращает свою работу(при определённом кол-ве занятой оперативной памяти), то нужно снова запустить этот же экземпляр Firefox

Я предполагаю что нужно при запуске exe файла(FirefoxLikesrock.exe) запоминать id запустившегося процесса(если это возможно конечно) и в дальнейшем мониторить работу этого процесса по id, как токлько процесса нет в работе, запускать exe по новой.

Я в кодинге не силён (только учусь на примерах), помогите пожалуйста решить такую задачу.

Заранее благодарен!
 
Я конечно в кодинге тоже не силен. Но выглядеть это будет как-то так помоему (вместо звездочек имя файла вписать)
Код:
@echo off
:Run
tasklist |find "*имя файла*"
if errorlevel 1 goto NoRun
goto Run
:NoRun
start * полный путь к файлу для запуска*
goto Run

П.С. Правда в этом варианте нужный файл будет запускаться всегда. Когда нужно и ненужно:) Как это исправить незнаю.
 
Когда нужно и ненужно
В смысле? Даже если этот exe уже запущен?
А вообще, спасибо, попробую сейчас.
П.С. дело ещё в том, что процессов Firefox 5 штук работает и нужно запускать тока тот, который был запущен ЭТИМ батником....
 
Даже если этот exe уже запущен?
Нет, если процесс окажется запущенным то он ничего делать не будет. В том смысле что если вы сами захотите закрыть Мозилу то этот батник её заново запустит независимо от того нужно вам это или нет. Ну если только перед закрытием мозилы сам батник "убивать"
 
Я конечно в кодинге тоже не силен. Но выглядеть это будет как-то так помоему (вместо звездочек имя файла вписать)


П.С. Правда в этом варианте нужный файл будет запускаться всегда. Когда нужно и ненужно:) Как это исправить незнаю.

Нет, если процесс окажется запущенным то он ничего делать не будет. В том смысле что если вы сами захотите закрыть Мозилу то этот батник её заново запустит независимо от того нужно вам это или нет. Ну если только перед закрытием мозилы сам батник "убивать"

Уже понял. Так не пойдёт, т.к. процессы ферифокса все одноимённы и постоянно хоть один да работает, нужно как-то, что бы батник запоминал id запускаемого им же процесса (т.к. при каждом запуске одного и того же exe id меняется) и уже по id смотрел, запущен нужный процесс, если нет то запускал его...
 
Нашел в интернете. На примере Калькулятора. Как я понял даный батник запускает процесс запоминает его PID и потом через определенное время его закрывает

Код:
@echo off
setlocal

set "wmic=wmic process call create "calc" | findstr "ProcessId""
for /f "tokens=2 delims==;" %%i in (' "%wmic%" ') do set "pid=%%i"

echo %pid%

timeout /t 3
taskkill /pid %pid%
Осталось только под ваш случай подредактировать его и мне кажется подойдет.
 
Спасибо большое!!! Думаю пойдёт. Сейчас с редактированием помучаюсь, думаю вечером "победю" и отпишусь о результате.
 
Осталось только под ваш случай подредактировать его и мне кажется подойдет.
По идее работает, но похоже нужно и у дочернего процесса id запоминать (не знаите как?). Попробовал с килл, процес с id найденым батником убивает, но бораузер как работал так и продолжает работать...
 
Назад
Сверху