5Sep
Vanliga system- och / eller miljöhändelser som att återuppta från vänteläge eller förlora nätverksanslutning kan orsaka problem för vissa applikationer som förväntar sig att de alltid är på och anslutna. Så om du har en viss applikation som kraschar eller går in i "inte svara" -läget något ofta och omstart är den enda åtgärden för det, har vi en enkel åtgärd för dig i form av ett anpassningsbart batchskript för att helt enkelt döda applikationen ochstarta om det.
Förutom den uppenbara situationen ovan kan detta skript användas för en mängd olika användbara uppgifter, till exempel:
- Starta om en applikation enkelt genom att dubbelklicka eller använda en snabbtangent.
- Starta om ett program endast när det hänger eller svarar inte.
- Kör som en planerad uppgift för att se till att en applikation alltid körs.
- Överallt annars vill du automatisera villkorad omstart av en applikation.
Anpassa skriptet ska vara ganska självförklarande av kommentarerna, så justera skriptet på rätt sätt och du är alla inställda.
Skriptet
@ECHO OFF ECHO Starta om programmet ECHO Skrivet av: Jason Faulkner ECHO SysadminGeek.com ECHO.EKO.SETLOCAL EnableExtensions REM Ange programinformationen. SET AppName = Programnamn SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Välj villkoren för att döda programmet. REM Ett värde av 1 = Ja, 0 = Nej SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Ange när programmet ska startas: REM 1 = Starta endast om processen tidigare dödades. REM 0 = Starta programmet oavsett. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Success = 0 ECHO Dödande existerande% AppName% instance. .. OM{ % KillIfRunning%} =={ 1} CALL: CheckKillStatus "% ExeFile%""RUNNING" OM{ % KillIfNotResponding%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "INTE RESPONDERAR" OM{ % KillIfUnknownStatus%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "UNKNOWN" ECHO.IF{ % StartOnlyIfKilled%} =={ 1}( Om{ % Success%} =={ 0} GOTO Slut) ECHO Omstart% AppName%. .. START "% ExeFile%" "% ExePath %% ExeFile%" ECHO.OM EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Död med status:% ~ 2 TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>;% KillStatus% SET / P KillResult = & lt;%( %% A) =={ SUCCESS}SET / A Succes =% Succes% + 1): SlutSlutsats
Medan du kan hitta program där ute som utför i stort sett samma funktion, använder du ett enkelt skript som det här för att undvika att "ännu ett program" körs i bakgrunden.