中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 18:08
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » VBS程序如何去传递或获取"批处理的执行结果"
可打印版本  1,149 / 8
第1楼 bd123456789 发表于 2008-03-07 18:20
中级用户 发帖 216 积分 360
VBS程序如何去传递或获取"批处理的执行结果"
程序如下:

set WshShell = CreateObject("WScript.Shell")

cmd=WshShell.run("CMD /c echo %time%", runhide)

msgbox cmd

为什么显示的结果是0,而不是批处理的执行结果17:02:28呢?

如何去提取批处理的执行结果?
第2楼 slore 发表于 2008-03-07 20:18
铂金会员 发帖 2,478 积分 5,212
cmd为什么要是P的内容?
你知道run的返回值是什么麽?

你直接msgbox time不是更好麽?
第3楼 bd123456789 发表于 2008-03-07 21:09
中级用户 发帖 216 积分 360
呵呵,非也
我上面的程序是举例

在有些情况 ,使用批处理可能比使用脚本在代码上更简洁,或者说更容易,程序中的TIME只不过是举例而已,请不要误解噢!

从你的回答中看来,显示0,看来是顺利执行了运行批处理代码的而已,而不是批处理的执行结果.OK

就是想不通,有什么好的方法能够直接使用脚本语言捕获CMD执行结果????

[ Last edited by bd123456789 on 2008-3-7 at 09:11 PM ]
第4楼 slore 发表于 2008-03-07 22:08
铂金会员 发帖 2,478 积分 5,212
不过VBS的效率高。

比较容易想到的是2个方法,bat输出,vbs读取。

当参数调用。
第5楼 fastslz 发表于 2008-03-10 15:54
铂金会员 发帖 2,315 积分 5,493 来自 上海
第6楼 bd123456789 发表于 2008-03-11 09:43
中级用户 发帖 216 积分 360
ok
执行结果正确!
以后可以拿来作标准组件了,解决了不少问题!
OK OK

不过,因为VBS水平有限,不知道其中的工作原理?

能看得懂的,帮忙解释一下吗?

是不是利用VBS去读取内存呀?或者其它什么的?
第7楼 zh159 发表于 2008-03-11 10:43
金牌会员 发帖 1,467 积分 3,687
如果批处理有输出,可以直接获取:


发现没有隐藏cmd窗口的参数,运行的时候会跳出cmd窗口
第8楼 fastslz 发表于 2008-03-11 11:13
铂金会员 发帖 2,315 积分 5,493 来自 上海
Originally posted by bd123456789 at 2008-3-11 09:43:
执行结果正确!
以后可以拿来作标准组件了,解决了不少问题!
OK OK

不过,因为VBS水平有限,不知道其中的工作原理?

能看得懂的,帮忙解释一下吗?

是不是利用VBS去读取内存呀?或者其它什么的?

这段代码Script56.chm
zh159兄的是简化代码,5楼完整代码还能返回Cmd执行错误提示,试试("%comspec% /c echo xxxx")就知道了
第9楼 bd123456789 发表于 2008-03-11 17:27
中级用户 发帖 216 积分 360
简单测试了一下

5楼代码中间一大段主要功能是 当CMD程序执行发生错误时,能够将错误原因显示出来...

7楼的方法,太简洁了,OK
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023