以下代码保存为.bat文件。用于需要按次序启动程序的情景。尤其适合在服务器中按照次序启动程序,并且检测进程是否丢失,如果丢失,则会重新启动该进程。可以打开循环,不断检测。

@echo off
setlocal enabledelayedexpansion
title 批处理启动程序 By:迷路轮回 www.xyx115.com
mode con cols=80 lines=20
set “soft1=C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe”
set “pr1=qq.exe”
set “soft2=D:\My_SoftWare\soft.exe”
set “pr2=soft.exe”
set “soft3=D:\My_SoftWare\Tencent\QQ\Bin\QQScLauncher.exe”
set “pr3=腾讯QQ.exe”

:loop
for /l %%i in ( 1,1,4 ) do (
cls & echo= & echo= & echo=
echo= 批处理启动程序
echo= & echo=
echo= ==============================================================================
echo=
echo= 1.按次序检测并启动丢失的进程程序
echo=
echo= 2.检测启动第一个程序后等待5秒执行检测第二个程序。
echo=
echo= 3.以此类推…如果要循环检测,去掉rem goto :loop前面的rem
echo=
echo=
echo= 迷路轮回 2016-06-06 http://www.xyx115.com
echo= ==============================================================================
if %%i==1 tasklist|findstr /i “!pr1!” >nul 2>nul && call :cz “!pr1!” || call :cq “!soft1!” “!pr1!”
if %%i==2 tasklist|findstr /i “!pr2!” >nul 2>nul && call :cz “!pr2!” || call :cq “!soft2!” “!pr2!”
if %%i==3 tasklist|findstr /i “!pr3!” >nul 2>nul && call :cz “!pr3!” || call :cq “!soft3!” “!pr3!”
if %%i==4 echo= 启动成功,即将自动退出 !
choice /t 5 /d y /n >nul 2>nul
)
rem 如果需要循环检测保护进程,去掉下面一行的注释rem三个字母
rem goto :loop
exit

:cz
echo %1进程存在,无需启动!& goto :eof
:cq
call %1 && echo %1启动成功 || echo %2启动失败,请手动启动!
goto :eof

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注