bat批处理脚本检查windows应用程序是否启动
需求说明
在windows系统中,有时需要启动一些应用程序,但是因为一些原因导致没有启动起来,而我们又需要其正常启动。
例如:向日葵远程控制,在出门时启动后,因为一些原因导致没有正常启动。
脚本说明
1.创建txt文本文件,修改文件名称及扩展名为.bat
,注意:文件名称不能中文
2.需要注意脚本保存的文件夹中也不能有中文,有中文可能会引起执行错误
3.启动脚本需要以管理员身份运行(原因:避免弹出用户控制页面需要确认是否可以启动应用程序)
4.编辑脚本根据实际需求修改应用程序名、路径、重试时间(下面脚本示例中 TODO 标识处)
5.脚本中应用程序.exe名称的获取方式:在桌面快捷方式右键->打开文件所在位置
6.应用程序的路径就是.exe文件所在路径(应用程序安装路径)
7.脚本会检查3次应用程序是否启动成功,如果均启动成功,脚本自动退出,若重试10次,应用程序仍然没有启动成功则退出脚本执行。
小提示:
创建快捷方式并设置以管理员身份运行
右键点击批处理文件 startXRK.bat,选择“创建快捷方式”。
右键点击创建的快捷方式,选择“属性”。
在“快捷方式”选项卡中,点击“高级”按钮。
勾选“以管理员身份运行”。
点击“确定”并应用设置。
这样,每次通过快捷方式启动脚本时,都会以管理员身份运行,并执行脚本中的操作。
bat脚本示例
@echo off chcp 65001 > nul REM 应用程序进程名称 (TODO:需要替换实际应用程序名) set processName=SunloginClient.exe REM 应用程序启动程序路径 (TODO:需要替换实际路径) set applicationPath=F:\SunloginClient_10.2.1\SunloginClient\SunloginClient.exe REM 延迟检查时间,单位:秒 (TODO:根据实际需要设置等待重试时间) set checkInterval=300 REM 日志文件 set logFile=%cd%\xrkRun_log.txt REM 启动成功累加器 set /a count=1 REM 启动失败累加器 set /a countFail=1 echo [%date% %time%] 检查%processName%应用程序启动情况开始 >> %logFile% :loop timeout /t %checkInterval% /nobreak > NUL tasklist /fi "imagename eq %processName%" 2>NUL | find /i /n "%processName%">NUL if "%ERRORLEVEL%"=="0" ( echo [%date% %time%] 应用程序正在运行 >> %logFile% set /a count+=1 if %count%==3 ( echo [%date% %time%] 应用程序已启动成功,退出脚本 >> %logFile% exit ) ) else ( echo [%date% %time%] 应用程序没有运行 >> %logFile% powershell -Command "Start-Process -FilePath '%applicationPath%' -Verb RunAs" echo [%date% %time%] 应用程序自动拉起 >> %logFile% set /a countFail+=1 if %countFail%==10 ( echo [%date% %time%] 警告:应用程序启动失败,退出脚本 >> %logFile% exit ) ) goto loop
执行日志
脚本执行过程日志打印文件与脚本同一目录下,文件名:xrkRun_log.txt
[周一 2024/06/24 22:13:42.63] 检查SunloginClient.exe应用程序启动情况开始 [周一 2024/06/24 22:13:52.24] 应用程序正在运行 [周一 2024/06/24 22:14:02.28] 应用程序正在运行 [周一 2024/06/24 22:14:12.21] 应用程序正在运行 [周一 2024/06/24 22:14:12.21] 应用程序已启动成功,退出脚本
本文来自博客园,作者:Lz_蚂蚱,转载请注明原文链接:https://www.cnblogs.com/leizia/p/18265972
分类:
Shell脚本
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步