set p=程序A 程序B 程序C 程序D
set t=10
:begin
for %%i in (%p%) do (
tasklist|findstr /i %%i.exe||start d:\%%i.exe
ping -n %t% 127.1>nul)
goto begin
 
##上面批处理说明在同一个目录下检查几个进程服务是否开启,没有开启的就启动该进程
@echo off  #这个是不显示出来
set        #设置变量
:begin     #这里设置一个begin在后面有个goto begin 这样就可以循环回到上面
tasklist |findstr /i   #查询已经启动的进程,参数/i:不区分大小写
ping -n %t% 127.1>nul  #这里可以设置延时相当linux中的sleep功能
 
备:还有可以使用net start功能
net start(stop) NSClientpp  启动服务(NSClientpp是服务名,且服务是自动的)
sc config NSClientpp start= demand   将服务设为自动(但未启动)
 
如:tasklist|findstr /i **.exe || net start ***(这个是**.exe的服务名)