Vanliga system- och / eller miljöhändelser som att återuppta standby eller förlora nätverksanslutning kan orsaka problem för vissa applikationer som förväntar sig att alltid är på och anslutna. Så om du har ett visst program som kraschar eller går in i "inte svarar" -läget något ofta och en omstart är den enda lösningen för det, har vi en enkel fix för dig i form av ett anpassningsbart batch-skript för att helt enkelt döda applikationen och starta om den.
Förutom den uppenbara situationen ovan kan detta skript användas för en mängd användbara uppgifter, till exempel:
- Starta enkelt om ett program genom att dubbelklicka eller använda en snabbtangent.
- Starta om bara ett program när det hängs eller inte svarar.
- Kör som en schemalagd uppgift för att se till att ett program alltid körs.
- Var som helst annars vill du automatisera villkorlig omstart av en applikation.
Att anpassa skriptet ska vara ganska självförklarande av kommentarerna, så konfigurera bara skriptet på rätt sätt så är du klar.
Manuset
@ECHO AV
ECHO Starta om applikation
ECHO Skriven av: Jason Faulkner
ECHO SysadminGeek.com
EKO.
EKO.
SETLOCAL EnableExtensions
REM Ange applikationsinformationen.
SET AppName = Applikationsnamn
SET ExeFile = FileToLaunch.exe
SET ExePath = C: PathToApplication
REM Välj villkoren för att döda applikationen.
REM A-värdet 1 = Ja, 0 = Nej
SET KillIfRunning = 1
SET KillIfNotResponding = 1
SET KillIfUnknownStatus = 1
REM Ange när ansökan ska startas:
REM 1 = Börja bara om processen tidigare dödades.
REM 0 = Starta applikationen oavsett.
SET StartOnlyIfKilled = 1
SET KillStatus = "% TEMP% KillStatus.tmp.txt"
SET Framgång = 0
ECHO dödar befintlig% AppName% instans ...
OM {%KillIfRunning%} == {1} SAMTAL: CheckKillStatus "% ExeFile%" "RUNNING"
OM {%KillIfNotResponding%} == {1} SAMTAL: CheckKillStatus "% ExeFile%" "SVAR INTE"
OM {%KillIfUnknownStatus%} == {1} SAMTAL: CheckKillStatus "% ExeFile%" "Okänt"
EKO.
OM {%StartOnlyIfKilled%} == {1} (
OM {%Success%} == {0} GOTO End
)
ECHO startar om% AppName% ...
STARTA "% ExeFile%" "% ExePath %% ExeFile%"
EKO.
OM EXIST% KillStatus% DEL / F / Q% KillStatus%
ENDLOCAL
: CheckKillStatus
ECHO-dödande 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 Framgång =% Framgång% + 1
)
:Slutet
Slutsats
Medan du kan hitta applikationer där ute som utför i princip samma funktion, undviker du att ha "ännu ett program" i bakgrunden med ett enkelt manus som detta.