0

実行する必要のあるいくつかのコマンドラインユーティリティを含むvbsファイルがあります。ただし、場合によっては、これらのutilsは、続行するためにユーザーからの入力を求めるプロンプトを表示することがあります。私はそれらの条件をトラップし、「はい」のデフォルトの答えを提供して続行できるようにしたいと思います。

これが私がこれまでに持っているものです:

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」がプロセスの標準入力に入れられます。

次のコマンドが stdin を入力として使用しない場合 (その実装ではキーボード関連の API が使用されます)、これを修正する簡単な方法はありません。

于 2012-04-25T20:06:15.360 に答える