Vanlige system- og / eller miljøhendelser som å gjenoppta standby eller miste nettverkstilkoblingen kan føre til problemer for visse applikasjoner som forventer å være alltid på og tilkoblet. Så hvis du har et bestemt program som krasjer eller går i "ikke svarer" -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-skript 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 hurtigtasten.
- Start et program på nytt bare 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 ellers vil du automatisere betinget omstart av et program.
Å tilpasse skriptet skal være ganske selvforklarende av kommentarene, så bare konfigurer skriptet riktig, så er du klar.
Manuset
@ECHO AV
ECHO Start applikasjon på nytt
ECHO Skrevet av: Jason Faulkner
ECHO SysadminGeek.com
EKKO.
EKKO.
SETLOCAL EnableExtensions
REM Angi applikasjonsinformasjonen.
SET AppName = Programnavn
SETT ExeFile = FileToLaunch.exe
SETT ExePath = C: PathToApplication
REM Velg forholdene for å drepe applikasjonen.
REM En verdi på 1 = Ja, 0 = Nei
SET KillIfRunning = 1
SET KillIfNotResponding = 1
SET KillIfUnknownStatus = 1
REM Angi når applikasjonen skal startes:
REM 1 = Start bare hvis prosessen tidligere ble drept.
REM 0 = Start applikasjonen uansett.
SETT StartOnlyIfKilled = 1
SET KillStatus = "% TEMP% KillStatus.tmp.txt"
SET suksess = 0
ECHO dreper eksisterende% AppName% forekomst ...
HVIS {%KillIfRunning%} == {1} RING: CheckKillStatus "% ExeFile%" "RUNNING"
HVIS {%KillIfNotResponding%} == {1} RING: CheckKillStatus "% ExeFile%" "IKKE SVARER"
HVIS {%KillIfUnknownStatus%} == {1} RING: CheckKillStatus "% ExeFile%" "Ukjent"
EKKO.
HVIS {%StartOnlyIfKilled%} == {1} (
HVIS {%Success%} == {0} GOTO Slutt
)
ECHO starter% AppName% på nytt ...
START "% ExeFile%" "% ExePath %% ExeFile%"
EKKO.
HVIS EXIST% KillStatus% DEL / F / Q% KillStatus%
ENDLOCAL
: CheckKillStatus
ECHO-drap med status:% ~ 2
TASKKILL / FI "STATUS ekv.% ~ 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 Suksess =% Suksess% + 1
)
:Slutt
Konklusjon
Mens du kan finne applikasjoner der ute som i utgangspunktet utfører den samme funksjonen, unngår du å bruke "enda et program" i bakgrunnen ved å bruke et enkelt skript som dette.