Board logo

标题: VBS固定循环命令 [打印本页]

作者: zinet    时间: 2008-10-21 00:16     标题: VBS固定循环命令

例一:有一脚本代码如下:

set ws=createobject("wscript.shell")
ws.run "aaa.exe"
wscript.sleep 10000
ws.run"taskkill /f /im aaa.exe",0
如何让vbs脚本自动循环运行10后,自动关机
命令该如何写?????


例二:有一脚本代码如下:
set ws=createobject("wscript.shell")
ws.run "aaa.exe"
当aaa.exe启动时,相继调用bbb.exe和ccc.exe启动
当aaa.exe关闭时,bbb.exe和ccc.exe依然运行
请问能否用脚本命令当aaa.exe退出时,bbb.exe和ccc.exe也跟着关闭
命令该如何写?????
作者: lixiaodaoaaa    时间: 2008-10-21 02:42     标题: 第一个比较好写

第一个好写点,第二个貌似不好写。。
  1. set ws = CreateObject("WScript.Shell")
  2. i=0
  3. do until i=10
  4.     i=i+1
  5.     ws.run "aaa.exe"
  6. loop
  7. ws.run"taskkill /f /im aaa.exe",0
  8. shutdown -s -t 0
复制代码


或者下面的代码也可以循环10次,就可以了
实际上,我是用vbs实现的。
  1. set ws = CreateObject("WScript.Shell")
  2. i=0
  3. while i<10
  4.     i=i+1
  5.     ws.run "aaa.exe"
  6. wend
  7. ws.run "cmd /c taskkill /im aaa.exe /f"
  8. ws.run "shutdown -s -t 0"
复制代码


完了。特别感谢 zqz0012005 看了他的东西模仿过来的,自己仔细看他的帖子,回答的非常的经典!

参考帖子 http://bbs.bathome.net/thread-1979-1-1.html

[ 本帖最后由 lixiaodaoaaa 于 2008-10-21 02:49 编辑 ]
作者: rat    时间: 2008-10-21 12:52

第二个:
  1. a = "aaa.exe"
  2. b = "bbb.exe"
  3. c = "ccc.exe"
  4. strComputer = "."
  5. Set objWMIService = GetObject("winmgmts:" _
  6.     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  7. Set colMonitoredProcesses = objWMIService. _
  8.     ExecNotificationQuery("select * from __instancedeletionevent " _
  9.             & "within 1 where TargetInstance isa 'Win32_Process'")
  10. i = 0
  11. Do While i = 0
  12.     Set objLatestProcess = colMonitoredProcesses.NextEvent
  13.     If LCase(objLatestProcess.TargetInstance.Name) = LCase(a) Then
  14.             KillProcess(b)
  15.             KillProcess(c)
  16.     End If
  17. Loop
  18. Sub KillProcess(sProcessName)
  19.         strComputer = "."
  20.         Set objWMIService = GetObject("winmgmts:" _
  21.             & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  22.         
  23.         Set colProcessList = objWMIService.ExecQuery _
  24.             ("Select * from Win32_Process Where Name = '" & sProcessName & "'")
  25.         
  26.         For Each objProcess in colProcessList
  27.             objProcess.Terminate()
  28.         Next
  29. End Sub
复制代码

[ 本帖最后由 rat 于 2008-10-21 12:53 编辑 ]




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