我正在尝试使用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循环时似乎工作得更好,在每两个数字后暂停,而不是仅打印出所有内容。然而,我仍然无法在每次循环后暂停。
答案 0 :(得分:1)
注意已注释掉的Do Loop
以及对Input =
行的更改。看起来你不需要循环,而只是一次只读一行。
Sub Pause(strPause)
WScript.Echo (strPause)
'Do While Not WScript.StdIn.AtEndOfLine
Input = WScript.StdIn.ReadLine
'Loop
End Sub