Поширені системні та / або екологічні події, такі як вихід із режиму очікування або втрата мережевого з’єднання, можуть спричинити проблеми для певних програм, які, як очікується, будуть постійно увімкненими та під’єднаними. Отже, якщо у вас є певна програма, яка аварійно завершує роботу або переходить у режим „не відповідає”, і перезапуск - це єдине виправлення, ми пропонуємо для вас просте виправлення у вигляді настроюваного пакетного сценарію, щоб просто вбити програму та перезапустіть його.
На додаток до очевидної ситуації, наведеної вище, цей сценарій можна використовувати для різноманітних корисних завдань, таких як:
- Легко перезапустіть програму подвійним клацанням або за допомогою гарячої клавіші.
- Перезапустіть програму лише тоді, коли вона зависла або не відповідає.
- Запустіть як заплановане завдання, щоб переконатися, що програма завжди запущена.
- В іншому місці, де ви хочете автоматизувати умовний перезапуск програми.
Налаштування сценарію повинно пояснюватися коментарями, тому просто налаштуйте сценарій належним чином, і все готово.
Сценарій
@ECHO OFF
Програма ECHO для перезапуску
ECHO Написав: Джейсон Фолкнер
ECHO SysadminGeek.com
ECHO.
ECHO.
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
SET KillStatus = "% TEMP% KillStatus.tmp.txt"
SET Успіх = 0
ECHO Вбивство існуючого екземпляра% AppName% ...
ЯКЩО {%KillIfRunning%} == {1} Дзвоніть: CheckKillStatus "% ExeFile%" "RUNNING"
ЯКЩО {%KillIfNotResponding%} == {1} Дзвоніть: CheckKillStatus "% ExeFile%" "НЕ ВІДПОВІДАЄ"
ЯКЩО {%KillIfUnknownStatus%} == {1} Дзвоніть: CheckKillStatus "% ExeFile%" "НЕВІДОМО"
ECHO.
ЯКЩО {%StartOnlyIfKilled%} == {1} (
ЯКЩО {%Success%} == {0} GOTO Кінець
)
ECHO Перезапуск% AppName% ...
СТАРТ "% ExeFile%" "% ExePath %% ExeFile%"
ECHO.
ЯКЩО ІСНУЄ% KillStatus% DEL / F / Q% KillStatus%
ЕНДЛОКАЛЬНА
: CheckKillStatus
ECHO Вбивство зі статусом:% ~ 2
ЗАВДАННЯ / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>% KillStatus%
SET / P KillResult = <% KillStatus%
FOR / F "токени = 1, * delims =:" %% A IN ("% KillResult%") DO (
ECHO %% A: %% B
IF / I {%%A} == {SUCCESS} SET / A Успіх =% успіху% + 1
)
: Кінець
Висновок
Хоча ви можете знайти додатки, які виконують в основному одну і ту ж функцію, за допомогою простого сценарію, такого як цей, уникнути запуску "ще однієї програми" у фоновому режимі.