我有一些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"
当我这样做时,没有任何反应。我看到我插入的调试语句......但脚本似乎挂了。
任何帮助将不胜感激。
答案 0 :(得分:0)
您是否尝试将输入放入文件并使用command redirecting?
cmdfile.cmd < resp.txt
答案 1 :(得分:0)
使用管道:echo y | your_command
。这将把'y'放入你的过程的stdin中。
如果下一个命令不使用stdin作为输入(它的实现使用与键盘相关的API),那么没有简单的方法来解决这个问题。