대기 모드에서 다시 시작하거나 네트워크 연결이 끊어지는 것과 같은 일반적인 시스템 및 / 또는 환경 이벤트는 항상 켜져 있고 연결될 것으로 예상되는 특정 응용 프로그램에 문제를 일으킬 수 있습니다. 따라서 충돌이 발생하거나 "응답하지 않는"모드로 들어가는 특정 응용 프로그램이 있고 다시 시작하는 것이 유일한 해결 방법 인 경우 사용자 지정 가능한 배치 스크립트 형태로 간단하게 응용 프로그램을 종료하고 다시 시작하십시오.
위의 명백한 상황 외에도이 스크립트는 다음과 같은 다양한 유용한 작업에 사용할 수 있습니다.
- 두 번 클릭하거나 바로 가기 키를 사용하여 응용 프로그램을 쉽게 다시 시작합니다.
- 프로그램이 중단되었거나 응답하지 않는 경우에만 프로그램을 다시 시작하십시오.
- 예약 된 작업으로 실행하여 응용 프로그램이 항상 실행되고 있는지 확인합니다.
- 응용 프로그램의 조건부 재시작을 자동화하려는 다른 곳.
스크립트를 사용자 정의하는 것은 주석으로 꽤 자명해야하므로 스크립트를 적절하게 구성하기 만하면 모든 설정이 완료됩니다.
스크립트
@ 에코 끄기
ECHO 재시작 애플리케이션
ECHO 작성자 : Jason Faulkner
ECHO SysadminGeek.com
에코.
에코.
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 성공 = 0
ECHO 기존 % AppName % 인스턴스를 종료하는 중 ...
IF {%KillIfRunning%} == {1} CALL : CheckKillStatus "% ExeFile %" "실행 중"
{%KillIfNotResponding%} == {1} CALL : CheckKillStatus "% ExeFile %" "응답하지 않음"
IF {%KillIfUnknownStatus%} == {1} CALL : CheckKillStatus "% ExeFile %" "알 수 없음"
에코.
{%StartOnlyIfKilled%} == {1} 인 경우 (
IF {%Success%} == {0} GOTO 끝
)
ECHO % AppName % 다시 시작 중 ...
시작 "% ExeFile %" "% ExePath %% ExeFile %"
에코.
존재하는 경우 % KillStatus % DEL / F / Q % KillStatus %
ENDLOCAL
: CheckKillStatus
ECHO Killing with status : % ~ 2
TASKKILL / FI "STATUS eq % ~ 2"/ IM "% ~ 1"/ F> % KillStatus %
SET / P KillResult = <% KillStatus %
FOR / F "tokens = 1, * delims = :"%% A IN ( "% KillResult %") DO (
에코 %% A : %% B
IF / I {%%A} == {SUCCESS} SET / A 성공 = % Success % + 1
)
:종료
결론
기본적으로 동일한 기능을 수행하는 응용 프로그램을 찾을 수 있지만 이와 같은 간단한 스크립트를 사용하면 백그라운드에서 "아직 다른 프로그램"이 실행되는 것을 방지 할 수 있습니다.