常见的系统和/或环境事件(如从待机状态恢复或断开网络连接)可能会导致某些应用程序出现问题,这些应用程序预计将始终处于打开和连接状态。因此,如果您有某个应用程序有点频繁地崩溃或进入“无响应”模式,并且重新启动是唯一的修复方法,我们有一个可定制批处理脚本形式的简单修复方法,可以简单地杀死该应用程序并重新启动它。
除了上述明显的情况外,此脚本还可用于各种有用的任务,例如:
通过双击或使用热键轻松重新启动应用程序。 仅当程序挂起或没有响应时才重新启动该程序。 作为计划任务运行,以确保应用程序始终在运行。 任何其他您想要自动有条件重新启动应用程序的地方。
自定义脚本在注释中应该是不言而喻的,所以只需适当地配置脚本,您就都设置好了。
剧本
@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
结束 / 结尾 / 结论 / 推论
虽然您可以找到执行基本相同功能的应用程序,但是使用这样一个简单的脚本可以避免在后台运行“另一个程序”。