Batch Script for å starte en applikasjon på nytt

Innholdsfortegnelse:

Batch Script for å starte en applikasjon på nytt
Batch Script for å starte en applikasjon på nytt

Video: Batch Script for å starte en applikasjon på nytt

Video: Batch Script for å starte en applikasjon på nytt
Video: CS50 2013 - Week 9 - YouTube 2024, April
Anonim

Vanlige system- og / eller miljøhendelser som for eksempel gjenoppta fra standby eller miste nettverkstilkobling kan føre til problemer for visse applikasjoner som forventer å være på og tilkoblet. Så hvis du har et bestemt program som krasjer eller går i "ikke svare" modus noe ofte, og en omstart er den eneste løsningen for det, har vi en enkel løsning for deg i form av et tilpassbart batch script for å bare drepe applikasjonen og start den på nytt.

I tillegg til den åpenbare situasjonen ovenfor, kan dette skriptet brukes til en rekke nyttige oppgaver, for eksempel:

  • Start en applikasjon enkelt ved å dobbeltklikke eller bruke en hurtigtast.
  • Start kun et program når det er hengt eller ikke svarer.
  • Kjør som en planlagt oppgave for å sikre at et program alltid kjører.
  • Hvor som helst annet du vil automatisere betinget omstart av et program.

Tilpasse skriptet bør være ganske selvforklarende av kommentarene, så bare konfigurér skriptet på riktig måte, og du er alle satt.

Manuset

@ECHO OFF ECHO Restart Application ECHO Written by: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Enter the application information. SET AppName=Application Name SET ExeFile=FileToLaunch.exe SET ExePath=C:PathToApplication REM Select the conditions to kill the application. REM A value of 1 = Yes, 0 = No SET KillIfRunning=1 SET KillIfNotResponding=1 SET KillIfUnknownStatus=1 REM Specify when to start the application: REM 1 = Start only if the process was previous killed. REM 0 = Start the application regardless. SET StartOnlyIfKilled=1 SET KillStatus='%TEMP%KillStatus.tmp.txt' SET Success=0 ECHO Killing existing %AppName% instance… 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 Restarting %AppName%… START '%ExeFile%' '%ExePath%%ExeFile%' ECHO. IF EXIST %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 ( ECHO %%A:%%B IF /I {%%A}=={SUCCESS} SET /A Success=%Success%+1 ):End

Konklusjon

Mens du kan finne programmer der ute som i utgangspunktet utfører samme funksjon, bruker et enkelt skript som dette unngår å ha "enda et program" som kjører i bakgrunnen.

Anbefalt: