Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .hta希望Windows脚本主机Exec()的功能更像Run()_Javascript_Windows_Hta - Fatal编程技术网

Javascript .hta希望Windows脚本主机Exec()的功能更像Run()

Javascript .hta希望Windows脚本主机Exec()的功能更像Run(),javascript,windows,hta,Javascript,Windows,Hta,我有一个html应用程序,它通过javascript执行多项任务。有些不要求我知道它们何时完成,所以我使用ActiveXObjectWScript.Shell.Run。有些任务我不想等待,因为我还有其他事情要做,但我需要知道任务何时完成,这样我才能开始一个相关任务,因此我使用ActiveXObjectWScript.Shell.Exec,并可以监视在javascript设置间隔中返回的WSHScript Exec对象 所讨论的任务是调用visual studio生成的批处理文件、某些分发批处理等

我有一个html应用程序,它通过javascript执行多项任务。有些不要求我知道它们何时完成,所以我使用ActiveXObjectWScript.Shell.Run。有些任务我不想等待,因为我还有其他事情要做,但我需要知道任务何时完成,这样我才能开始一个相关任务,因此我使用ActiveXObjectWScript.Shell.Exec,并可以监视在javascript设置间隔中返回的WSHScript Exec对象

所讨论的任务是调用visual studio生成的批处理文件、某些分发批处理等。主批处理显示其自己的输出,并且它调用的项具有它们显示的窗口和其他输出

我遇到的问题是Exec创建了一个子命令shell,它调用的批处理不显示,它调用的进程的窗口也不显示。我不想捕获stdin/out/err,但想让Exec更像Run,只是启动批处理,但返回wshscript Exec,这样我就可以监视它是否完成

这在任何方面都是可能的,或者有其他的解决方法吗

多谢各位

var e=sh.Exec("%comspec% /c testbatch.bat >con")

它并不完美:批处理文件将无法访问输入,如果其中有一些控制序列,则输出可能会失真。但是它确实允许您查看正在发生的事情。

您的意思是不能从以下位置获取cmd.Status:var cmd=wscript shell.Execsome_prog;?不,我能够正确获取状态,并检查其值。问题是没有显示我的批次输出,并且它打开的窗口也不显示。这些过程可以在任务管理器中看到。我猜这是因为Exec创建了一个子命令shell?谢谢,执行完毕后状态不是变为1吗?当使用Exec启动批处理文件时,我还可以看到一个CMD窗口。也许将wscript/i写入CMD提示符有助于查看窗口?完成后,状态确实变为1,并且功能正常。在添加myobject.StdOut.ReadAll和StdErr.ReadAll之前,我注意到我的批处理一直处于挂起状态。现在,我获取批处理调用的程序窗口,但不获取批处理本身的输出。我将研究WCcript建议更多信息。在运行Exec时,我确实看到cmd窗口打开,但它不显示任何输出。如果我继续检查javascript中的stdOut,我会得到批处理将显示的输出。我尝试创建一个批处理,然后调用真实的批处理,看看是否会打开另一个显示输出的cmd窗口,但它没有。