Batch Script til betinget genstart af et program
Fælles system- og / eller miljømæssige begivenheder som genoptagelse fra standby eller tab af netværksforbindelse kan forårsage problemer for visse applikationer, som forventer at være altid på og tilsluttet. Så hvis du har en bestemt applikation, der nedbryder eller går i tilstanden "ikke reagerer" noget ofte, og en genstart er den eneste løsning til det, har vi en simpel løsning til dig i form af et brugerdefineret batch script til blot at dræbe applikationen og genstart det.
Ud over den indlysende situation ovenfor kan dette script bruges til en række nyttige opgaver, såsom:
- Genstart en applikation nemt ved at dobbeltklikke eller bruge en genvejstast.
- Genstart kun et program, når det hænger eller ikke reagerer.
- Kør som en planlagt opgave for at sikre, at et program altid kører.
- Overalt ellers vil du automatisere betinget genstart af en applikation.
Tilpasning af scriptet skal være ret selvforklarende af kommentarerne, så konfigurer scriptet korrekt, og du er helt indstillet.
Manuskriptet
@ECHO FRA ECHO Genstart ansøgning ECHO Skrevet af: Jason Faulkner ECHO SysadminGeek.com ECHO. EKKO. SETLOCAL EnableExtensions REM Indtast programoplysningerne. SET AppName = Programnavn SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Vælg betingelserne for at dræbe programmet. REM En værdi på 1 = Ja, 0 = Nej SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Angiv, hvornår programmet skal startes: REM 1 = Start kun hvis processen blev tidligere dræbt. REM 0 = Start programmet uanset. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Succes = 0 ECHO Dræber 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 % Success% == 0 GOTO Slut) ECHO Genstart% AppName% ... START "% ExeFile%" "% ExePath %% ExeFile%" ECHO. Hvis EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Dræbte 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
Konklusion
Mens du kan finde programmer derude, der udfører grundlæggende samme funktion, ved at bruge et simpelt script som dette undgår at have "endnu et program", der kører i baggrunden.