如何通过vbs执行命令

时间:2012-04-25 19:33:12

标签: file cmd prompt

我有一些vbs文件,其中包含一些需要运行的命令行实用程序。 但在某些情况下,这些工具可能会提示用户输入以继续。我希望能够捕获这些条件,提供“是”的默认答案,然后继续。

这是我到目前为止所拥有的:

Dim oExec
set oExec = objShell.Exec("mycmd pw ....")

do while not oExec.StdOut.AtEndofStream
    wscript.echo "status of script: " & oExec.Status
    input = input & oExec.StdOut.ReadLine()
    if instr(input, "create key? (y/n)") <> 0 Then exit do
loop
oExec.Stdin.Write "y"

当我这样做时,没有任何反应。我看到我插入的调试语句......但脚本似乎挂了。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您是否尝试将输入放入文件并使用command redirecting

cmdfile.cmd < resp.txt

答案 1 :(得分:0)

使用管道:echo y | your_command。这将把'y'放入你的过程的stdin中。

如果下一个命令不使用stdin作为输入(它的实现使用与键盘相关的API),那么没有简单的方法来解决这个问题。