Batch Script for å starte en applikasjon på nytt
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.
Tilpassing av skriptet bør være ganske selvforklarende av kommentarene, så bare konfigurer skriptet på riktig måte, og du er alle satt.
Manuset
@ECHO OFF ECHO Restart Application ECHO Skrevet av: Jason Faulkner ECHO SysadminGeek.com ECHO. EKKO. SETLOCAL EnableExtensions REM Oppgi programinformasjonen. SET AppName = Programnavn SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Velg betingelsene for å drepe programmet. REM En verdi på 1 = Ja, 0 = Ingen SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Angi når du skal starte programmet: REM 1 = Start bare hvis prosessen ble tidligere drept. REM 0 = Start programmet uansett. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Suksess = 0 ECHO dreper eksisterende% AppName% forekomst ... IF % KillIfRunning% == 1 CALL: CheckKillStatus "% ExeFile%" "RUNNING "IF % KillIfNotResponding% == 1 CALL: CheckKillStatus"% ExeFile% "" NOT RESPONDING "IF % KillIfUnknownStatus% == 1 CALL: CheckKillStatus"% ExeFile% "" UNKNOWN "ECHO. Hvis % StartOnlyIfKilled% == 1 (Hvis % Suksess% == 0 GOTO End) ECHO Restarting% AppName% ... START "% ExeFile%" "% ExePath %% ExeFile%" ECHO. IF EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Drap med 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.