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

时间:2013-10-29 14:36:00

标签: 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

我在一个简单的循环中调用这个子程序,打印出1到10.它在第一次调用后正确暂停,但之后它只打印出其余部分而没有暂停。它仍然会回显Pause String,因此它似乎正在击中Sub。

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

不确定sub中的Do While循环是否导致问题或者是否需要以某种方式清除Input值?当从Do中删除Do While循环时似乎工作得更好,在每两个数字后暂停,而不是仅打印出所有内容。然而,我仍然无法在每次循环后暂停。

1 个答案:

答案 0 :(得分:1)

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

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