Pagrindinis » kaip » Partijos scenarijus, kad būtų galima iš naujo paleisti programą

    Partijos scenarijus, kad būtų galima iš naujo paleisti programą

    Bendros sistemos ir (arba) aplinkosaugos įvykiai, pvz., Atsinaujinimas iš budėjimo režimo arba praradus tinklo ryšį, gali sukelti problemų tam tikroms programoms, kurios tikisi, kad jos bus visada prijungtos. Taigi, jei turite tam tikrą programą, kuri dažnai sulaužo arba įsijungia į „nereaguojantis“ režimą, o pakartotinis paleidimas yra vienintelė išeitis, mes turime paprastą pataisymą, kad galėtumėte nužudyti taikomąją paketą. iš naujo paleiskite.

    Be akivaizdžios situacijos, šis scenarijus gali būti naudojamas įvairioms naudingoms užduotims, pavyzdžiui:

    • Lengvai iš naujo paleiskite programą dukart spustelėjus arba naudodami karštą klavišą.
    • Paleiskite programą tik tada, kai ji pakabinta arba neatsako.
    • Paleiskite kaip suplanuotą užduotį, kad įsitikintumėte, jog programa visada veikia.
    • Visur, kur norite automatizuoti sąlyginį programos paleidimą.

    Skripto pritaikymas turėtų būti gana aiškus komentaruose, todėl tiesiog tinkamai sukonfigūruokite scenarijų ir visi esate nustatyti.

    Scenarijus

    @ECHO ECHO iš naujo paleisti programą ECHO Parašė: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Įveskite programos informaciją. SET AppName = Programos pavadinimas SET ExeFile = FileToLaunch.exe SET ExePath = C: PathToApplication REM Pasirinkite sąlygas, kuriomis galima užmušti programą. REM A vertė 1 = Taip, 0 = Ne SET KillIfRunning = 1 SET KillIfNotResponding = 1 SET KillIfUnknownStatus = 1 REM Nurodykite, kada pradėti programą: REM 1 = Pradėti tik tada, kai procesas buvo nužudytas. REM 0 = Pradėkite programą nepriklausomai. SET StartOnlyIfKilled = 1 SET KillStatus = "% TEMP% KillStatus.tmp.txt" SET sėkmė = 0 ECHO nužudymas esamas% AppName% instance… IF % KillIfRunning% == 1 CALL: CheckKillStatus "% ExeFile%" "RUNNING "IF % KillIfNotResponding% == 1 CALL: CheckKillStatus"% ExeFile% "" NOT RESPONDING "IF % KillIfUnknownStatus% == 1 CALL: CheckKillStatus"% ExeFile% "" UNKNOWN "ECHO. IF % StartOnlyIfKilled% == 1 (IF % Success% == 0 GOTO pabaiga) ECHO iš naujo paleisti% AppName%… START "% ExeFile%" "% ExePath %% ExeFile%" ECHO. IF EXIST% KillStatus% DEL / F / Q% KillStatus% ENDLOCAL: CheckKillStatus ECHO nužudymas su būsena:% ~ 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 

    Išvada

    Nors galite rasti ten esančių programų, kurios iš esmės atlieka tą pačią funkciją, naudodami paprastą scenarijų, pvz., Taip išvengsite „dar kitos programos“ fone.