中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-03 15:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理监督进程 查看 785 回复 3
楼 主 批处理监督进程 发表于 2007-03-11 10:37 ·  中国 湖南 永州 电信
初级用户
积分 83
发帖 32
注册 2006-12-26 05:27
19年会员
UID 74585
性别 男
状态 离线
在d盘下有1.bat ,2.bat

1.bat在运行.2.bat也在运行
2.bat是监督1.bat进程,如果1.bat运行,2.bat不调用1.bat
如果1.bat进程突然终止2.bat立刻调用1.bat能不能实现?

[ Last edited by Mekinery on 2007-3-10 at 10:26 PM ]
2 发表于 2007-03-11 10:43 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
进程?进程里都是cmd吧?
3 发表于 2007-03-12 03:13 ·  中国 广东 广州 海珠区 电信
初级用户
★★
积分 170
发帖 72
注册 2007-03-11 22:16
19年会员
UID 81435
性别 男
状态 离线
前两天刚研究过~~

用vbs方式,先把 1.bat 2.bat 用工具编译成 1.exe 2.exe
然后用 vbs 查看进程进行判断 (需要增加多1个批处理,作为判断 否后运行 1.exe 或 2.exe)

把判断后要运行得批处理或脚本文件,代替到 ****.exe 位置就行了


strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process")

For Each objProcess in colProcesses
If Right(objProcess.Name, 5) = "1.exe" Then
Wscript.Quit
End If
Next

For Each objProcess in colProcesses
If Right(objProcess.Name, 5) = "2.exe" Then
Wscript.Quit
End If
Next


Set objShell = CreateObject("WScript.Shell")
objShell.Run "*****.exe"
Wscript.Quit
4 发表于 2007-03-12 03:16 ·  中国 广东 广州 海珠区 电信
初级用户
★★
积分 170
发帖 72
注册 2007-03-11 22:16
19年会员
UID 81435
性别 男
状态 离线
如果想循环得话(不断判断两个文件运行情况),可以在新加得批处理中添加调用回 vbs脚本

自己看看了解,我没写全,哈~~GOOD Luck
论坛跳转: