|
bd123456789
中级用户
  
积分 360
发帖 216
注册 2007-5-29
状态 离线
|
『楼 主』:
VBS程序如何去传递或获取"批处理的执行结果"
使用 LLM 解释/回答一下
程序如下:
set WshShell = CreateObject("WScript.Shell")
cmd=WshShell.run("CMD /c echo %time%", runhide)
msgbox cmd
为什么显示的结果是0,而不是批处理的执行结果17:02:28呢?
如何去提取批处理的执行结果?
|
|
2008-3-7 18:20 |
|
|
slore
铂金会员
      
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第 2 楼』:
使用 LLM 解释/回答一下
cmd为什么要是P的内容?
你知道run的返回值是什么麽?
你直接msgbox time不是更好麽?
|
|
2008-3-7 20:18 |
|
|
bd123456789
中级用户
  
积分 360
发帖 216
注册 2007-5-29
状态 离线
|
『第 3 楼』:
呵呵,非也
使用 LLM 解释/回答一下
我上面的程序是举例
在有些情况 ,使用批处理可能比使用脚本在代码上更简洁,或者说更容易,程序中的TIME只不过是举例而已,请不要误解噢!
从你的回答中看来,显示0,看来是顺利执行了运行批处理代码的而已,而不是批处理的执行结果.OK
就是想不通,有什么好的方法能够直接使用脚本语言捕获CMD执行结果????
Last edited by bd123456789 on 2008-3-7 at 09:11 PM ]
|
|
2008-3-7 21:09 |
|
|
slore
铂金会员
      
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
|
2008-3-7 22:08 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第 5 楼』:
使用 LLM 解释/回答一下
Dim WshShell, oExec
Set WshShell
Set
Function
If
ReadAllFromAny
Exit
End
If
ReadAllFromAny
Exit
End
ReadAllFromAny
End
Dim
allInput
tryCount
Do
Dim
input
If
If
Exit
End
tryCount
WScript.Sleep
Else
allInput
tryCount
End
Loop
If
WScript.Echo
End
WScript.Echo
|

第一高手 第二高手
我的小站
 |
|
2008-3-10 15:54 |
|
|
bd123456789
中级用户
  
积分 360
发帖 216
注册 2007-5-29
状态 离线
|
『第 6 楼』:
ok
使用 LLM 解释/回答一下
执行结果正确!
以后可以拿来作标准组件了,解决了不少问题!
OK OK
不过,因为VBS水平有限,不知道其中的工作原理?
能看得懂的,帮忙解释一下吗?
是不是利用VBS去读取内存呀?或者其它什么的?
|
|
2008-3-11 09:43 |
|
|
zh159
金牌会员
     
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第 7 楼』:
使用 LLM 解释/回答一下
如果批处理有输出,可以直接获取:
Dim WshShell, oExec
Set WshShell
Set
WScript.Echo
发现没有隐藏cmd窗口的参数,运行的时候会跳出cmd窗口
|

 |
|
2008-3-11 10:43 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第 8 楼』:
使用 LLM 解释/回答一下
Originally posted by bd123456789 at 2008-3-11 09:43:
执行结果正确!
以后可以拿来作标准组件了,解决了不少问题!
OK OK
不过,因为VBS水平有限,不知道其中的工作原理?
能看得懂的,帮忙解释一下吗?
是不是利用VBS去读取内存呀?或者其它什么的?
这段代码Script56.chm
zh159兄的是简化代码,5楼完整代码还能返回Cmd执行错误提示,试试("%comspec% /c echo xxxx")就知道了
|

第一高手 第二高手
我的小站
 |
|
2008-3-11 11:13 |
|
|
bd123456789
中级用户
  
积分 360
发帖 216
注册 2007-5-29
状态 离线
|
『第 9 楼』:
使用 LLM 解释/回答一下
简单测试了一下
5楼代码中间一大段主要功能是 当CMD程序执行发生错误时,能够将错误原因显示出来...
7楼的方法,太简洁了,OK
|
|
2008-3-11 17:27 |
|