找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 37261|回复: 8

[系统相关] 批处理BAT如何判断进程是否失败并重新运行进程?

[复制链接]
发表于 2014-2-24 11:34:10 | 显示全部楼层 |阅读模式
.bat 脚本求组!!!!急

我要做一份.bat脚本

有A.B.两个进程

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

PS:
     A,B 进程运行之前先执行 “process clean”命令初始化进程。
     然后执行A,B进程。
发表于 2014-2-24 12:30:21 | 显示全部楼层
  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. )
复制代码
 楼主| 发表于 2014-2-24 17:07:26 | 显示全部楼层
回复 2# Batcher

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

能不能 句尾添加以下 ,关闭这个执行后的2个窗口呢?
发表于 2014-2-24 17:32:02 | 显示全部楼层
回复 3# mao2mao515


最下面加一行:
  1. taskkill /f /im cmd.exe
复制代码
 楼主| 发表于 2014-2-25 15:40:32 | 显示全部楼层
回复 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 命令

啊,麻烦您的,我的头都快要爆炸了
 楼主| 发表于 2014-2-25 15:41:55 | 显示全部楼层
tbboot文件用  If语句

tbdown文件用 if语句

clean.bat文件就不用了~~~
发表于 2014-2-25 16:00:18 | 显示全部楼层
不知道你说的 以上3个文件能不能用if文件来使用 是什么意思
 楼主| 发表于 2014-2-25 16:34:36 | 显示全部楼层
回复 7# Batcher


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

不用case 语句, 用 if 语句能否实现呢?
发表于 2014-2-25 17:14:22 | 显示全部楼层
回复 8# mao2mao515


主要是不知道你想干什么
是把那3个bat文件合并成一个吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 01:04 , Processed in 0.032177 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表