VBS有条件循环执行代码

要求如下:
编一个VBS,循环执行(且静默)c:\\windows\\bug.bat
如果bug.bat正在运行则不再运行
如果bug.bat已关闭则继续运行
要求此VBS循环执行
我只懂一点
大概意思是:
do
set Cleaner=createobject("wscript.shell")
Cleaner.run "c:\\windows\\bug.bat",vbhide
这段代码不会编了,就是条件的
loop
高手帮忙看看我的对吗?然后再帮我把剩下的编一下
谢谢了!!!

方法一(超级简单):
set Cleaner=createobject("wscript.shell")
do
Cleaner.Run "c:\\windows\\bug.bat", vbhide, true'注意这里的最后一个参数
loop

方法二(不断检测进程,不存在则调出):
set Cleaner=createobject("wscript.shell")
do
WScript.Sleep 100'暂停100毫秒,避免占用过多资源
if not isProcessExists("cmd.exe") then Cleaner.run "c:\\windows\\bug.bat", vbhide
loop
'检测是否存在进程proName
Private Function isProcessExists(proName)
Set objWMIService = GetObject("winmgmts:" & "{impersonationlevel=impersonate}!\\\\.\\root\\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name='" & proName & "'")
isProcessExists = (colProcessList.Count <> 0)
End Function
'第二种方法不是很保险,因为其他的程序也有可能会产生cmd.exe这个进程。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-21
Do
CreateObject("Wscript.Shell").run "c:\windows\bug.bat",0,1 '0表示隐藏,后面的1表示等待运行完毕。
Loop
相似回答