Yhteiset järjestelmä- ja / tai ympäristötapahtumat, kuten valmiustilasta jatkaminen tai verkkoyhteyden menettäminen, voivat aiheuttaa ongelmia tietyissä sovelluksissa, jotka odottavat aina olevan kytkettynä ja kytkettyinä. Joten jos sinulla on tietty sovellus, joka kaatuu tai menee "ei vastaamaan" -tilaan jonkin verran ja uudelleenkäynnistys on ainoa korjaus siihen, meillä on yksinkertainen korjaus sinulle muokattavissa olevan komentosarjan avulla, joka yksinkertaisesti tappaa sovelluksen ja Käynnistä se uudelleen.
Edellä kuvatun ilmeisen tilanteen lisäksi tätä skriptiä voidaan käyttää useisiin hyödyllisiin tehtäviin, kuten:
Komentosarjan mukauttaminen pitäisi olla melko itsestään selittävä kommenttien avulla, joten määritä käsikirjoitus asianmukaisesti ja olette kaikki asetettu.
@ ECO POISTA ECHO Käynnistä sovellus ECHO Kirjoittanut: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Syötä sovellustiedot. SET AppName = Sovelluksen nimi SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Valitse sovelluksen lopettamisolosuhteet. REM Arvo 1 = Kyllä, 0 = Ei SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Määritä, milloin käynnistää sovelluksen: REM 1 = Aloita vain, jos prosessi on aikaisemmin tapettu. REM 0 = Aloita sovellus riippumatta. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET menestys = 0 ECHO Tappaminen nykyinen% AppName% instanssi ... IF % KillIfRunning% == 1 CALL: CheckKillStatus "% ExeFile%" "RUNNING "IF % KillIfNotResponding% == 1 CALL: CheckKillStatus"% ExeFile% "" EI VASTAA "IF % KillIfUnknownStatus% == 1 CALL: CheckKillStatus"% ExeFile% "" UNKNOWN "ECHO. Jos % StartOnlyIfKilled% == 1 (IF % Success% == 0 GOTO End) ECHO Käynnistää% AppName% ... START "% ExeFile%" "% ExePath %% ExeFile%" ECHO. JOS OLET% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO Tappaminen tilassa:% ~ 2 TASKKILL / FI "STATUS eq% ~ 2" / IM "% ~ 1" / F>% KillStatus% SET / P (% ECB %% A: %% B IF / I %% A == KillResult = <% KillStatus% FOR / F "rahakkeet = 1, * delims =:" SUCCESS SET / A Menestys =% Menestys% + 1): Lopeta
Vaikka löydät sovelluksia, jotka toimivat periaatteessa saman funktion avulla, käytä yksinkertaista komentosarjaa, jolla estetään, että "vielä toinen ohjelma" toimii taustalla.