0

私は vbscript を試していて、非常に基本的なコードを実行しているだけですが、見つけられない簡単な解決策があると推測しています。これはcscriptを使用したCMDです。

スクリプトを停止し、ユーザーに Enter キーを押して続行するように求める Pause という名前のサブルーチンがあります。

sub Pause(strPause)
    WScript.Echo (strPause)
    Do While Not WScript.StdIn.AtEndOfLine
        Input = WScript.StdIn.Read(1)
    Loop
End sub

1 から 10 を出力する単純なループでこのサブルーチンを呼び出しています。最初の呼び出しの後で正しく一時停止しますが、その後は残りを一時停止せずに出力します。それはまだポーズ文字列をエコーするので、サブにヒットしているようです。

For i = 1 To 10
    ' Print i to the Output window.
    Wscript.echo"loop index is " & i
    ' Wait for user to resume.
    Pause("Press Enter to continue")    
Next

サブルーチン内の Do While ループが問題を引き起こしているのか、それとも入力値を何らかの形でクリアする必要があるのか​​不明ですか? Do While ループが Sub から削除され、すべてを出力するのではなく、2 つの数値ごとに一時停止すると、少しうまくいくようです。それでも、各ループの後に一時停止することはできません。

4

1 に答える 1

1

コメントアウトされDo Loop、行が変更されていることに注意してくださいInput =。一度に1行ずつ読むだけでなく、ループは必要ないようです。

Sub Pause(strPause)
    WScript.Echo (strPause)
    'Do While Not WScript.StdIn.AtEndOfLine
        Input = WScript.StdIn.ReadLine
    'Loop
End Sub
于 2013-10-29T15:33:13.870 に答える