/ / Partijas skripts, lai nosacīti restartētu lietojumprogrammu

Partijas skripts, lai nosacīti restartētu lietojumprogrammu

Kopīgi sistēmas un / vai vides notikumi, piemēram,Atsākšana no gaidstāves vai tīkla savienojuma zaudēšana var radīt problēmas dažām lietojumprogrammām, kuras vienmēr ir ieslēgtas un savienotas. Tātad, ja jums ir kāda lietojumprogramma, kas avarē vai nedaudz bieži pārslēdzas uz “neatbild” režīmu, un restartēšana ir vienīgais tās labojums, mums ir vienkāršs labojums, kas jums ir pielāgojama partijas skripta veidā, lai vienkārši nogalinātu lietojumprogrammu un restartējiet to.

Papildus iepriekš redzamajai situācijai šo skriptu var izmantot dažādiem noderīgiem uzdevumiem, piemēram:

  • Vienkārši restartējiet lietojumprogrammu, veicot dubultklikšķi vai izmantojot karsto taustiņu.
  • Restartējiet programmu tikai tad, kad tā ir pakārtota vai nereaģē.
  • Palaist kā plānotu uzdevumu, lai pārliecinātos, ka lietojumprogramma vienmēr darbojas.
  • Visur, kur vēlaties automatizēt lietojumprogrammas nosacītu restartēšanu.

Skripta pielāgošanai komentāros vajadzētu būt diezgan pašsaprotamiem, tāpēc vienkārši konfigurējiet skriptu atbilstoši un esat gatavs.

Scenārijs

@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

Secinājums

Lai gan jūs tur varat atrast lietojumprogrammas, kas principā pilda to pašu funkciju, izmantojot vienkāršu skriptu, piemēram, šo, fonā nedarbojas “vēl viena programma”.