自己写的第一个批处理文件

    在程序尚未完善之前,可能由于某些原因,需要进行联调,如果程序可能有未知bug,触发频率较小,且目前没时间来得及找出的话,程序一旦崩溃,就需要人工启动。当在深夜时,需要人工太麻烦。故而该批处理诞生。

    批处理命令全文如下:

@echo off
rem 设置路径和可执行程序名称
set comPath=G:\WorkPlace_Second_SVN\WDMiddleWareServer\Release\Release_DataUpServer_2015_08_11_com
set uncomPath=G:\WorkPlace_Second_SVN\WDMiddleWareServer\Release\Release_DataUpServer_2015_08_11_uncom
set executeFileName1=WDDataReveiceServer.exe

rem ------------------以上可配置-----------------------
rem ------------------以下禁止修改---------------------  
 
rem 拷贝一份名称出来(由于是同一个程序,配置不一样,所以需要俩版本)
set executeFileName2=%executeFileName1%

rem 转到uncomPath目录,修改文件名称(程序名由项目产生,同名,由于需要俩版本,方便在进程中查找,故需要改名)
rem 改名的时候要注意,dos下文件名是有长度限制的,名字太长,即使进程存在,dos检测的返回 ERRORLEVEL会始终为未检测到的值哦
cd /d %uncomPath%
set uncomExecuteFileName=u_%executeFileName1%
ren %executeFileName1% %uncomExecuteFileName%

rem 转到comPath目录,修改文件名称
cd /d %comPath%
set comExecuteFileName=c_%executeFileName2%
ren %executeFileName2% %comExecuteFileName%

rem  以下就是检测和重启程序的命令 
 
:reStart
rem 检测压缩版本进程,压缩版本进程不在就重启
tasklist|find /i "%comExecuteFileName%">nul
if not %ERRORLEVEL%==0 cd /d %comPath%&start %comExecuteFileName% 
rem choice /t 5 /d y /n >nul
rem 检测未压缩版本进程,未压缩进程不在就重启
tasklist|find /i "%uncomExecuteFileName%">nul
if not %ERRORLEVEL%==0 cd /d %uncomPath%start %uncomExecuteFileName%
rem choice /t 5 /d y /n >nul
rem 循环判断进程是否还在
goto reStart

    至此,运行是成功的,同时庆祝俺也会写批处理啦,果真压力有助于快速学习的。

    后话:本来领导给的是完善一个Mysql数据库到Oracle数据库数据转移的批处理,但是自己不会批处理,压力真大,最后在领导耐心的指导下才完成。噢噢。。。。过程中俺是提供了建设性的建议的。。。加速了产品的完成的呀。。。以后再看这篇文章的时候,希望能回忆点什么。。。。。。。。。。。。。

你可能感兴趣的:(循环,批处理,tasklist,检测进程,重启进程)