0

我有一些需要运行的命令行实用程序的 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"

当我这样做时,什么也没有发生。我看到我插入的调试语句......但脚本似乎挂起。

任何帮助,将不胜感激。

4

2 回答 2

0

您是否尝试将输入放入文件并使用命令重定向

cmdfile.cmd < resp.txt

于 2012-04-25T19:53:46.723 回答
0

使用管道:echo y | your_command. 这会将“y”放入进程的标准输入中。

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

于 2012-04-25T20:06:15.360 回答