0

我正在尝试使用 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。它在第一次调用后正确暂停,但之后它只是打印出其余的没有暂停。它仍然与暂停字符串相呼应,因此它似乎正在击中 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 值?当从 Sub 中删除 Do While 循环时,它似乎工作得更好一些,每两个数字后暂停,而不是仅仅打印出所有内容。然而,我仍然无法让它在每个循环后暂停。

4

1 回答 1

1

请注意注释掉的内容Do Loop和对该行的更改Input =。看起来您不需要循环,而只需一次读取一行。

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 回答