热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

来自WScript.ShellExec的实时控制台输出

如何解决《来自WScript.ShellExec的实时控制台输出》经验,需要怎么解决?

我花了大部分时间寻找解决方案,我开始认为它可能不符合我的要求

我的基本设置是运行从excel vba代码调用的Vbscript(.vbs).vba代码必须继续运行并使Vbscript保持运行,但会不时使用它进行监视Exec.Status

在Vbscript中,我用它WScript.StdOut.WriteLine "whatever"来跟踪/调试它的进度,但就目前而言,我只能在excel vba代码完成后才能读取它的输出.

我想要的是从Vbscript看到实时输出到控制台

这是vba代码......

Dim WSH As IWshRuntimeLibrary.WshShell   'Windows Script Host Object Model
Dim Exec As WshExec 

Set WSH = CreateObject("WScript.Shell")
Set Exec = WSH.Exec("%COMSPEC% /C CSCRIPT.EXE //nologo " _
    & VbsFileDir _
    & " " & Arg1 _
    & " " & Arg2 _
    & " " & Arg3 _
    & " " & Arg4)

我已经能够通过转换来获得实时输出WSH.ExecWSH.Run,但我确实需要访问Exec.Status,这是不是可以下WSH.Run


更新 - 2015-02-06

进一步澄清......使用@ Ekkehard.Horner提供的示例'... B.vbs'代码答案......以下excel-vba代码将向控制台显示实时输出...

WSH.Run("cscript C:\28353522-B.vbs")

...但以下内容不会向控制台显示任何内容

WSH.Exec("cscript C:\28353522-B.vbs")

我无法使用,.Run()因为我使用了.Status标志.Exec() 而且我不能只将Vbscript移动到VBA代码中,因为VBA继续与Vbscript并行执行其他任务.

Ps如果有人能提交答案解释为什么不能这样做,那么我会将其标记为已接受.


推荐阅读
author-avatar
书友64457430
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有