Vbscript 停止脚本以提示用户按Enter键的子例程仅在第一次调用时正确工作

Vbscript 停止脚本以提示用户按Enter键的子例程仅在第一次调用时正确工作,vbscript,Vbscript,我正在尝试vbscript,只运行非常基本的代码,我猜有一个简单的解决方案我找不到。我正在用cscript运行这是CMD 我有一个名为Pause的子例程,它应该停止脚本并要求用户按Enter键继续 sub Pause(strPause) WScript.Echo (strPause) Do While Not WScript.StdIn.AtEndOfLine Input = WScript.StdIn.Read(1) Loop End sub 我在一个

我正在尝试vbscript,只运行非常基本的代码,我猜有一个简单的解决方案我找不到。我正在用cscript运行这是CMD

我有一个名为Pause的子例程,它应该停止脚本并要求用户按Enter键继续

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中删除,每两个数字后暂停一次,而不是只打印所有内容,那么它的效果似乎会更好一些。但我仍然无法让它在每次循环后暂停

注意注释掉的
Do循环
和对
Input=
行的更改。看起来你不需要循环,而是一次读一行

Sub Pause(strPause)
    WScript.Echo (strPause)
    'Do While Not WScript.StdIn.AtEndOfLine
        Input = WScript.StdIn.ReadLine
    'Loop
End Sub

我觉得这个循环是不必要的,但读线肯定让我很烦。作品完美,谢谢!