如何在VB Script中延迟?

lad*_*792 5 vbscript wsh delay setup-project visual-studio-2010

如何延迟 Vb 脚本?以下代码对我不起作用:

wscript.sleep 1000
Run Code Online (Sandbox Code Playgroud)
Delay 10

Sub Delay( seconds )
    Dim wshShell, strCmd
    Set wshShell = CreateObject( "Wscript.Shell" )
    strCmd = "%COMSPEC% /C (PING -n " & ( seconds + 1 ) & " 127.0.0.1 >NUL 2>&1 || PING -n " & seconds & " ::1 >NUL 2>&1)"
    wshShell.Run strCmd, 0, 1
    Set wshShell = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
dim oshell 
set oshell = CreateObject("Wscript.Shell") 


obshell.run "%windir%\system32\rundll32.exe kernel32.dll Sleep 5000" 
Run Code Online (Sandbox Code Playgroud)

Hei*_*nzi 4

第一条语句WScript.Sleep 1000确实有效。你的错误一定是在其他地方。

证明

在桌面上创建文件 test.vbs:

WScript.Echo Time()
WScript.Sleep 2000
WScript.Echo Time()
Run Code Online (Sandbox Code Playgroud)

运行如下:

C:\Users\...\Desktop>cscript test.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

11:31:34
11:31:36
Run Code Online (Sandbox Code Playgroud)

注意两秒的区别。(如果这个确切的脚本在您的电脑上产生不同的结果,请在评论中说明并接受我的道歉。)

  • @ladiesman1792:啊,好吧,这是一条重要的信息。:-) 显然,您不能在安装项目中使用 WScript,甚至不能使用 CreateObject。您可以[使用此处讨论的解决方法之一](http://stackoverflow.com/q/8487935/87698)或[使用此处讨论的另一种等待方法(例如,在循环中忙等待)](http:// stackoverflow.com/q/1729075/87698)。 (4认同)