5Sep
Vanlige system- og / eller miljøhendelser som for eksempel gjenoppta fra standby eller miste nettverkstilkobling kan forårsake problemer for visse applikasjoner som forventer å være på og tilkoblet. Så hvis du har et bestemt program som krasjer eller går i "ikke svare" -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 script for å bare drepe applikasjonen ogstart den på nytt.
I tillegg til den åpenbare situasjonen ovenfor, kan dette skriptet brukes til en rekke nyttige oppgaver, for eksempel:
- Start en applikasjon på nytt enkelt ved å dobbeltklikke eller bruke en hurtigtast.
- Start kun et program 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 annet du vil automatisere betinget omstart av et program.
Tilpasse skriptet bør være ganske selvforklarende av kommentarene, så bare konfigurer skriptet på riktig måte, og du er alle satt.
Skriptet
@ECHO OFF ECHO Start programmet på nytt ECHO Skrevet av: Jason Faulkner ECHO SysadminGeek.com ECHO.EKKO.SETLOCAL EnableExtensions REM Oppgi programinformasjonen. SET AppName = Programnavn SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Velg betingelsene for å drepe programmet. REM En verdi på 1 = Ja, 0 = Ingen SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Angi når du skal starte programmet: REM 1 = Start bare hvis prosessen ble tidligere drept. REM 0 = Start programmet uansett. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET Suksess = 0 ECHO dreper eksisterende% AppName% forekomst. .. IF{ % KillIfRunning%} =={ 1} CALL: CheckKillStatus "% ExeFile%""RUNNING" IF{ % KillIfNotResponding%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "IKKE RESPONDER" OM{ % KillIfUnknownStatus%} =={ 1} CALL: CheckKillStatus "% ExeFile%" "UNKNOWN" ECHO.Hvis{ % StartOnlyIfKilled%} =={ 1}( Hvis{ % Suksess%} =={ 0} GOTO Slutt) ECHO Restarting% AppName%. .. START "% ExeFile%" "% ExePath %% ExeFile%" ECHO.HVIS EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Drap med status:% ~ 2 TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>;% KillStatus% SET / P KillResult = & lt;%( %% A) =={ SUCCESS}SET / A Suksess =% Suksess% + 1): SluttKonklusjon
Mens du kan finne programmer der ute som i utgangspunktet utfører samme funksjon, bruker du et enkelt skript som dette unngår å ha "enda et program" som kjører i bakgrunnen.