Общие системные и / или внешние события, такие как выход из режима ожидания или потеря сетевого соединения, могут вызвать проблемы для определенных приложений, которые должны быть всегда включены и подключены. Поэтому, если у вас есть какое-то приложение, которое несколько часто вылетает или переходит в режим «не отвечает», и перезапуск является единственным решением для этого, у нас есть простое исправление для вас в виде настраиваемого пакетного сценария, который просто убивает приложение и перезапустите его.
В дополнение к очевидной ситуации, описанной выше, этот скрипт можно использовать для множества полезных задач, таких как:
- Легко перезапустите приложение, дважды щелкнув его или используя горячую клавишу.
- Перезапускайте программу только тогда, когда она зависла или не отвечает.
- Запускать как запланированную задачу, чтобы приложение всегда работало.
- В любом другом месте вы хотите автоматизировать условный перезапуск приложения.
Комментарии к настройке сценария должны быть довольно очевидными, поэтому просто настройте сценарий соответствующим образом, и все готово.
Сценарий
@ECHO OFF
Приложение ECHO Restart
ECHO Автор: Джейсон Фолкнер
ECHO SysadminGeek.com
ЭХО.
ЭХО.
SETLOCAL EnableExtensions
REM Введите информацию о приложении.
SET AppName = Имя приложения
НАБОР ExeFile = FileToLaunch.exe
УСТАНОВИТЬ ExePath = C: PathToApplication
REM Выберите условия для завершения работы приложения.
REM Значение 1 = да, 0 = нет
УСТАНОВИТЬ KillIfRunning = 1
УСТАНОВИТЬ KillIfNotResponding = 1
УСТАНОВИТЬ KillIfUnknownStatus = 1
REM Укажите, когда запускать приложение:
REM 1 = запускать, только если процесс был ранее остановлен.
REM 0 = Запустить приложение независимо.
УСТАНОВИТЬ StartOnlyIfKilled = 1
УСТАНОВИТЬ KillStatus = "% TEMP% KillStatus.tmp.txt"
УСТАНОВИТЬ Успех = 0
ECHO Удаление существующего экземпляра% AppName% ...
ЕСЛИ {%KillIfRunning%} == {1} ВЫЗОВ: CheckKillStatus "% ExeFile%" "RUNNING"
ЕСЛИ {%KillIfNotResponding%} == {1} ВЫЗОВ: CheckKillStatus "% ExeFile%" "НЕ ОТВЕТ"
IF {%KillIfUnknownStatus%} == {1} ВЫЗОВ: CheckKillStatus "% ExeFile%" "UNKNOWN"
ЭХО.
ЕСЛИ {%StartOnlyIfKilled%} == {1} (
IF {%Success%} == {0} GOTO End
)
ECHO Restarting% AppName% ...
START "% ExeFile%" "% ExePath %% ExeFile%"
ЭХО.
ЕСЛИ СУЩЕСТВУЕТ% KillStatus% DEL / F / Q% KillStatus%
ENDLOCAL
: CheckKillStatus
ECHO Killing со статусом:% ~ 2
TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>% KillStatus%
SET / P KillResult = <% KillStatus%
FOR / F "токены = 1, * delims =:" %% A IN ("% KillResult%") DO (
ЭХО %% A: %% B
IF / I {%%A} == {SUCCESS} SET / Успех =% успеха% + 1
)
:Конец
Вывод
Хотя вы можете найти приложения, которые выполняют в основном те же функции, использование простого сценария, такого как этот, позволяет избежать запуска «еще одной программы» в фоновом режиме.