2013-10-29 12 views
0

我正在嘗試使用vbscript,只是運行非常基本的代碼,我猜測有一個簡單的解決方案,我無法找到。我正在運行這是與cscript CMD。停止腳本以提示用戶點擊Enter的子例程僅在第一次調用時才能正常工作

我有一個名爲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 

不確定Sub內的Do While循環是否導致問題,或者需要以某種方式清除輸入值?當Do While While循環從Sub中移除時,它似乎工作得更好一些,在每兩個數字之後暫停,而不是僅打印出所有內容。然而,我仍然無法在每次循環後暫停。

回答

1

注意註釋掉Do Loop,並更改爲Input =一行。看起來你不需要循環,而只是一次讀一行。

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

想通過循環是沒有必要的,但ReadLine肯定會拋出我。完美的作品,謝謝! – NotIllogical

相關問題