中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 11:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 这段VBS为什么提示语法错误? 查看 611 回复 5
楼 主 这段VBS为什么提示语法错误? 发表于 2008-02-14 19:42 ·  中国 江苏 无锡 宜兴市 电信
中级用户
★★
积分 487
发帖 212
注册 2007-04-01 08:22
19年会员
UID 83597
性别 男
状态 离线
由于需要检测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
2 发表于 2008-02-14 20:36 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
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
第一高手 第二高手

3 发表于 2008-02-14 21:04 ·  中国 江苏 无锡 宜兴市 电信
中级用户
★★
积分 487
发帖 212
注册 2007-04-01 08:22
19年会员
UID 83597
性别 男
状态 离线
谢谢了!~代码貌似无法实现判断啊...麻烦帮我修改成能判断那CMD进程是否确实存在,如果存在则提示,不存在则运行XCOPY.TXT

[ Last edited by luckboy45 on 2008-2-14 at 09:12 PM ]
4 发表于 2008-02-14 21:12 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
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
第一高手 第二高手

5 发表于 2008-02-14 21:18 ·  中国 江苏 无锡 宜兴市 电信
中级用户
★★
积分 487
发帖 212
注册 2007-04-01 08:22
19年会员
UID 83597
性别 男
状态 离线
多谢大哥了!~VBS不愧轮回贯通啊,以后要多向大哥学习才是!~
6 发表于 2008-02-14 21:42 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
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
第一高手 第二高手

论坛跳转: