用于有条件地重新启动应用程序的批处理脚本

常见的系统和/或环境事件(如从待机状态恢复或断开网络连接)可能会导致某些应用程序出现问题,这些应用程序预计将始终处于打开和连接状态。因此,如果您有某个应用程序有点频繁地崩溃或进入“无响应”模式,并且重新启动是唯一的修复方法,我们有一个可定制批处理脚本形式的简单修复方法,可以简单地杀死该应用程序并重新启动它。

除了上述明显的情况外,此脚本还可用于各种有用的任务,例如:

通过双击或使用热键轻松重新启动应用程序。 仅当程序挂起或没有响应时才重新启动该程序。 作为计划任务运行,以确保应用程序始终在运行。 任何其他您想要自动有条件重新启动应用程序的地方。

自定义脚本在注释中应该是不言而喻的,所以只需适当地配置脚本,您就都设置好了。

剧本

@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

结束 / 结尾 / 结论 / 推论

虽然您可以找到执行基本相同功能的应用程序,但是使用这样一个简单的脚本可以避免在后台运行“另一个程序”。

相关文章