Board logo

标题: [系统相关] 批处理BAT如何判断进程是否失败并重新运行进程? [打印本页]

作者: mao2mao515    时间: 2014-2-24 11:34     标题: 批处理BAT如何判断进程是否失败并重新运行进程?

.bat 脚本求组!!!!急

我要做一份.bat脚本

有A.B.两个进程

当A进程运行失败
判断 A.B 进程两个 都失败 , 同时,试图重新运行A,B 进程

PS:
     A,B 进程运行之前先执行 “process clean”命令初始化进程。
     然后执行A,B进程。
作者: Batcher    时间: 2014-2-24 12:30

  1. @echo off
  2. set "ProcesA=a.exe"
  3. set "ProcesB=b.exe"
  4. set StatusA=0
  5. set StatusB=0
  6. set StatusTwo=0
  7. tasklist | findstr "\<%ProcesA%\>" || set StatusA=1
  8. tasklist | findstr "\<%ProcesB%\>" || set StatusB=1
  9. set /a StatusTwo=StatusA+StatusB
  10. if %StatusTwo% equ 2 (
  11.     process clean
  12.     start %ProcesA%
  13.     start %ProcesB%
  14. )
复制代码

作者: mao2mao515    时间: 2014-2-24 17:07

回复 2# Batcher

我执行这个时候 , 弹出2个cmd  窗口。

能不能 句尾添加以下 ,关闭这个执行后的2个窗口呢?
作者: Batcher    时间: 2014-2-24 17:32

回复 3# mao2mao515


最下面加一行:
  1. taskkill /f /im cmd.exe
复制代码

作者: mao2mao515    时间: 2014-2-25 15:40

回复 4# Batcher

-----------------------  tbboot.bat 文件内容------------------------------   

cd C:\Tibero\tibero5\bin
start tbboot.bat -w
timeout /t 10
taskkill /F /IM wscript.exe
timeout /t 5
tasklist | find /c "tbsvr.exe" >= 0
if %ERRORLEVEL% == 0 goto case1
if %ERRORLEVEL% == 1 goto case2

:case1
exit 0

:case2
start tbdown clean
timeout -t 5
start tbboot.bat -w
timeout /t 10
taskkill /F /IM wscript.exe
exit 0
   ---------------------------------------------------tbdown.bat 文件内容 -------------------------------------------
cd C:\Tibero\tibero5\bin
start tbdown.bat -w
timeout /t 10
taskkill /F /IM wscript.exe
timeout -t 3
tasklist | find /c "tbsvr.exe" >= 0
if %ERRORLEVEL% == 0 goto case1
if %ERRORLEVEL% == 1 goto case2

:case1
timeout /t 5
taskkill /f /im tbsvr.exe
exit 0

:case2
timeout /t 10
exit 0
-------------------------------------------------clean.bat -----------------------------------------
start C:\Tibero\tibero5\bin\tbdown clean
exit 0

以上3个文件能不能用if文件来使用?就像第一次回复的那样。。。
tbsvr.exe  和  tblistener.exe 中 tbsvr.exe 进程有问题
就判断为故障。
然后先执行tbdown clean 命令之后执行 tbboot.bat 命令

啊,麻烦您的,我的头都快要爆炸了
作者: mao2mao515    时间: 2014-2-25 15:41

tbboot文件用  If语句

tbdown文件用 if语句

clean.bat文件就不用了~~~
作者: Batcher    时间: 2014-2-25 16:00

不知道你说的 以上3个文件能不能用if文件来使用 是什么意思
作者: mao2mao515    时间: 2014-2-25 16:34

回复 7# Batcher


    可能我对语法不了解
就像java的  if ,else 语句样

不用case 语句, 用 if 语句能否实现呢?
作者: Batcher    时间: 2014-2-25 17:14

回复 8# mao2mao515


主要是不知道你想干什么
是把那3个bat文件合并成一个吗?




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2