Almindelige system- og / eller miljøhændelser, som f.eks. At genoptage standby eller miste netværksforbindelse, kan forårsage problemer for bestemte applikationer, som altid forventer at være tændt og tilsluttet. Så hvis du har en bestemt applikation, der går ned eller går i "ikke reagerer" -tilstand noget ofte, og en genstart er den eneste løsning på det, har vi en simpel løsning til dig i form af et tilpasset batch-script, der blot dræber applikationen og genstart det.
Ud over den åbenlyse situation ovenfor kan dette script bruges til en række nyttige opgaver, såsom:
- Genstart nemt et program ved at dobbeltklikke på det eller bruge en genvejstast.
- Genstart kun et program, når det er hængt eller ikke reagerer.
- Kør som en planlagt opgave for at sikre, at et program altid kører.
- Hvor som helst ellers vil du automatisere betinget genstart af en applikation.
Tilpasning af scriptet skal være ret selvforklarende af kommentarerne, så bare konfigurer scriptet korrekt, så er du klar.
Manuskriptet
@ECHO OFF
ECHO genstart applikation
ECHO Skrevet af: Jason Faulkner
ECHO SysadminGeek.com
EKKO.
EKKO.
SETLOCAL EnableExtensions
REM Indtast applikationsoplysningerne.
SET AppName = Applikationsnavn
SET ExeFile = FileToLaunch.exe
SET ExePath = C: PathToApplication
REM Vælg betingelserne for at dræbe applikationen.
REM A-værdi på 1 = Ja, 0 = Nej
SET KillIfRunning = 1
SET KillIfNotResponding = 1
SET KillIfUnknownStatus = 1
REM Angiv, hvornår applikationen skal startes:
REM 1 = Start kun, hvis processen tidligere blev dræbt.
REM 0 = Start applikationen uanset.
SET StartOnlyIfKilled = 1
SET KillStatus = "% TEMP% KillStatus.tmp.txt"
SET Succes = 0
ECHO Dræber eksisterende% AppName% forekomst ...
HVIS {%KillIfRunning%} == {1} OPKALD: CheckKillStatus "% ExeFile%" "Kører"
HVIS {%KillIfNotResponding%} == {1} OPKALD: CheckKillStatus "% ExeFile%" "Svarer IKKE"
HVIS {%KillIfUnknownStatus%} == {1} OPKALD: CheckKillStatus "% ExeFile%" "Ukendt"
EKKO.
HVIS {%StartOnlyIfKilled%} == {1} (
HVIS {%Success%} == {0} GOTO End
)
ECHO Genstarter% AppName% ...
START "% ExeFile%" "% ExePath %% ExeFile%"
EKKO.
HVIS EXIST% KillStatus% DEL / F / Q% KillStatus%
ENDLOCAL
: CheckKillStatus
ECHO-drab 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 Succes =% Succes% + 1
)
:Ende
Konklusion
Mens du kan finde applikationer derude, der stort set udfører den samme funktion, undgår man ved at bruge et simpelt script som dette at have "endnu et program" kørende i baggrunden.