Serijinis scenarijus, leidžiantis iš naujo paleisti programą

Turinys:

Serijinis scenarijus, leidžiantis iš naujo paleisti programą
Serijinis scenarijus, leidžiantis iš naujo paleisti programą

Video: Serijinis scenarijus, leidžiantis iš naujo paleisti programą

Video: Serijinis scenarijus, leidžiantis iš naujo paleisti programą
Video: MS Word Trick The Power of Wildcard Search Tool - YouTube 2024, Gegužė
Anonim

Bendros sistemos ir (arba) aplinkosaugos įvykiai, pvz., Atnaujinimas iš budėjimo režimo arba neprarandant tinklo ryšio, gali sukelti problemų tam tikroms programoms, kurios tikisi būti visada įjungtos ir prijungtos. Taigi, jei turite tam tikrą programą, kuri sugenda arba įjungiama į "nereaguoja" režimą šiek tiek dažnai, o iš naujo paleiskite ją tik tai, tai paprasčiausiai galite ištaisyti jums pritaikytą paketinį scenarijų, kad paprasčiausiai nužudytumėte programą ir paleiskite jį iš naujo.

Be akivaizdžios situacijos aukščiau, šis scenarijus gali būti naudojamas įvairiausioms naudingoms užduotims:

  • Lengvai paleiskite programą dukart spustelėdami arba naudodami karštą raktą.
  • Iš naujo paleiskite programą tik tada, kai ji pakabinta arba neatsako.
  • Vykdykite kaip suplanuotą užduotį, kad įsitikintumėte, jog programa visada veikia.
  • Visur kitur norite automatizuoti sąlyginį programos pakartotinį paleidimą.

Šablono pritaikymas turėtų būti gana savaime suprantamas komentaruose, todėl tiesiog sukonfigūruokite scenarijų tinkamai, o visi esate nustatyti.

Scenarijus

@ECHO OFF ECHO Restart Application ECHO Written by: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. SETLOCAL EnableExtensions REM Enter the application information. SET AppName=Application Name SET ExeFile=FileToLaunch.exe SET ExePath=C:PathToApplication REM Select the conditions to kill the application. REM A value of 1 = Yes, 0 = No SET KillIfRunning=1 SET KillIfNotResponding=1 SET KillIfUnknownStatus=1 REM Specify when to start the application: REM 1 = Start only if the process was previous killed. REM 0 = Start the application regardless. SET StartOnlyIfKilled=1 SET KillStatus='%TEMP%KillStatus.tmp.txt' SET Success=0 ECHO Killing existing %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 End ) ECHO Restarting %AppName%… START '%ExeFile%' '%ExePath%%ExeFile%' ECHO. IF EXIST %KillStatus% DEL /F /Q %KillStatus% ENDLOCAL:CheckKillStatus ECHO Killing with status: %~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 programų, kurios iš esmės atlieka tą pačią funkciją, naudojant paprastą scenarijų, tokiu būdu išvengiama "dar vieno programos" paleidimo fone.

Rekomenduojamas: