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”.