Board logo

标题: 这段VBS为什么提示语法错误? [打印本页]

作者: luckboy45     时间: 2008-2-14 19:42    标题: 这段VBS为什么提示语法错误?

由于需要检测CMD是否存在于进程中,一旦检测到就提示,未检测到就运xcopy.txt
请各位帮忙修正,由于本人水平有限,所以麻烦各位了!~在线等...

Set WshShell = WScript.CreateObject("WScript.Shell")
Set colProcessList = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'cmd.exe'")
IF IsArray(colProcessList) Then MsgBox "亲爱的朋友,请先关闭该软件后,再运行本程序执行备份", 64, "友情提示"
Else WshShell.Run "xcopy.txt"
end if
作者: fastslz     时间: 2008-2-14 20:36

Set WshShell = WScript.CreateObject("WScript.Shell")
Set objWMIService = Getobject("Winmgmts:")
Set colProcessList = objWMIService.ExecQuery _
    ("select * from Win32_Process where name='cmd.exe'")
IF IsArray(colProcessList) Then
MsgBox "亲爱的朋友,请先关闭该软件后,再运行本程序执行备份", 64, "友情提示"
Else
WshShell.Run "xcopy.txt"
end if

作者: luckboy45     时间: 2008-2-14 21:04
谢谢了!~代码貌似无法实现判断啊...麻烦帮我修改成能判断那CMD进程是否确实存在,如果存在则提示,不存在则运行XCOPY.TXT

[ Last edited by luckboy45 on 2008-2-14 at 09:12 PM ]
作者: fastslz     时间: 2008-2-14 21:12

Set Ws = CreateObject("WScript.Shell")
Dim Wmi, Proc, Info, Flag, Target
Target = "cmd.exe"
Flag = False
Set Wmi = Getobject("Winmgmts:")
Set Proc = Wmi.Execquery("Select * From Win32_Process")
For Each Info In Proc
    If Info.Name = Target Then Flag = True
Next
If Flag = False Then
   Ws.Run "xcopy.txt"
   Else
   MsgBox "亲爱的朋友,请先关闭该软件后,再运行本程序执行备份", 64, "友情提示"
End If

作者: luckboy45     时间: 2008-2-14 21:18
多谢大哥了!~VBS不愧轮回贯通啊,以后要多向大哥学习才是!~
作者: fastslz     时间: 2008-2-14 21:42

Set WsShell = CreateObject("WScript.Shell")
Set objWMIService = Getobject("Winmgmts:")
Set ColProcessList = objWMIService.ExecQuery _
    ("select * from Win32_Process where name='cmd.exe'")
For Each objProcess In ColProcessList
intReturn = objProcess.Terminate(1)
Next
WsShell.Run "xcopy.txt"
直接杀死CMD进程后运行xcopy.txt