Пакетный скрипт для условного перезапуска приложения
Общие системные события и / или события окружающей среды, такие как восстановление из режима ожидания или потеря сетевого подключения, могут вызвать проблемы для определенных приложений, которые ожидают постоянного включения и подключения. Поэтому, если у вас есть определенное приложение, которое выходит из строя или переходит в режим «не отвечает» довольно часто, и перезапуск является единственным исправлением для него, у нас есть простое исправление для вас в виде настраиваемого пакетного сценария, который просто убивает приложение и перезапустите его.
В дополнение к очевидной ситуации, описанной выше, этот скрипт может использоваться для различных полезных задач, таких как:
- Легко перезапустите приложение, дважды щелкнув мышью или воспользовавшись горячей клавишей.
- Перезапускать программу, только когда она зависла или не отвечает.
- Запустите как запланированное задание, чтобы приложение всегда работало.
- В другом месте вы хотите автоматизировать условный перезапуск приложения.
Настройка сценария должна быть достаточно понятной для комментариев, так что просто настройте сценарий соответствующим образом, и все готово.
Сценарий
@ECHO OFF ECHO Перезапустить приложение ECHO Автор: Джейсон Фолкнер, ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Введите информацию о приложении. SET AppName = Имя приложения. SET ExeFile = FileToLaunch.exe. SET ExePath = C: PathToApplication REM. Выберите условия для удаления приложения. REM Значение 1 = Да, 0 = Нет SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Укажите, когда следует запускать приложение: REM 1 = Запускать, только если процесс был ранее убит. REM 0 = Запустить приложение независимо. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Success = 0 ECHO Уничтожение существующего экземпляра% AppName%… IF % KillIfRunning% == 1 CALL: CheckKillStatus "% ExeFile%" "RUNNING "IF % KillIfNotResponding% == 1 CALL: CheckKillStatus"% ExeFile% "" NOT RESPONDING "IF % KillIfUnknownStatus% == 1 CALL: CheckKillStatus"% ExeFile% "" UNKNOWN "ECHO. IF % StartOnlyIfKilled% == 1 (IF % Success% == 0 GOTO End) ECHO Перезапуск% AppName%… START "% ExeFile%" "% ExePath %% ExeFile%" ECHO. ЕСЛИ СУЩЕСТВУЕТ% 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 "tokens=1,* delims=:" %%A IN ("%KillResult%") DO ( ECHO %%A:%%B IF /I %%A==SUCCESS SET /A Success=%Success%+1 ) :End
Заключение
В то время как вы можете найти приложения, которые выполняют в основном ту же функцию, используя простой скрипт, такой как этот, позволяет избежать запуска «еще одной программы» в фоновом режиме..