Dávkový skript podmienene reštartujte aplikáciu

Obsah:

Dávkový skript podmienene reštartujte aplikáciu
Dávkový skript podmienene reštartujte aplikáciu
Anonim

Spoločné systémové a / alebo environmentálne udalosti, ako je obnovenie z pohotovostného režimu alebo straty sieťového pripojenia, môžu spôsobiť problémy pre určité aplikácie, ktoré očakávajú, že budú vždy zapnuté a pripojené. Takže ak máte nejakú aplikáciu, ktorá sa zrúti alebo prejde do režimu "nereaguje" trochu často a reštart je jediná oprava, máme pre vás jednoduchú opravu vo forme prispôsobiteľného dávkového skriptu, ktorý jednoducho zabije aplikáciu a reštartujte ho.

Okrem vyššie uvedenej situácie sa tento skript môže použiť aj na rôzne užitočné úlohy, ako napríklad:

  • Jednoducho reštartujte aplikáciu dvojitým kliknutím alebo pomocou horúceho tlačidla.
  • Reštartujte program iba vtedy, keď je zavesený alebo neodpovedá.
  • Spustite ako naplánovanú úlohu, aby ste sa uistili, že aplikácia je vždy spustená.
  • Kdekoľvek inde chcete automatizovať podmienené reštartovanie aplikácie.

Prispôsobenie skriptu by malo byť docela samo vysvetľujúce komentáre, takže skript správne nakonfigurujte a vy ste všetci nastavení.

Scenár

@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

záver

Zatiaľ čo nájdete aplikácie, ktoré vykonávajú v podstate rovnakú funkciu, pomocou jednoduchého skriptu, ako je tento, zabraňuje tomu, aby sa na pozadí spustil "ďalší program".

Odporúča: