bad*_*d99 52
为此而努力(XP).
创建一个新文件,将其命名为test.vbs.把它放进去吧.
WScript.Sleep 1000
MsgBox "TEST"
Run Code Online (Sandbox Code Playgroud)
运行它,注意消息框显示之前的延迟.
注意,该数字以毫秒为单位,因此1000为1秒.
小智 30
如果您尝试在VBScript中模拟睡眠延迟但WScript不可用(例如:您的脚本是从Microsoft的BGInfo工具调用的),请尝试以下方法.
以下示例将从处理指令的那一刻起延迟10秒:
Dim dteWait
dteWait = DateAdd("s", 10, Now())
Do Until (Now() > dteWait)
Loop
Run Code Online (Sandbox Code Playgroud)
Jee*_*raj 20
如果它是VBScript,它应该是
WScript.Sleep 100
Run Code Online (Sandbox Code Playgroud)
如果是JavaScript
WScript.Sleep(100);
Run Code Online (Sandbox Code Playgroud)
时间以毫秒为单位.WScript.Sleep 1000导致1秒睡眠.
Raj*_*gan 10
以下行将使您的脚本睡眠5分钟.
WScript.Sleep 5*60*1000
Run Code Online (Sandbox Code Playgroud)
请注意,传递给sleep调用的值以毫秒为单位.
小智 9
这里有很多答案假设您在Windows Scripting Host中运行VBScript(通常wscript.exe或者cscript.exe).如果您收到的错误如" 变量未定义:"WScript"那么您可能不是.
WScript对象仅在您在Windows Scripting Host下运行时才可用,如果您在另一个脚本主机(例如Internet Explorer)下运行(如果您使用的是HTA,则可能没有意识到)它是不会自动提供.
微软的嘿,脚本专家!博客有一篇文章只涉及这个主题我如何暂时暂停HTA中的脚本?他们使用VBScript setTimeout创建一个计时器来模拟睡眠而不需要使用CPU占用循环等.
使用的代码是这样的:
<script language = "VBScript">
Dim dtmStartTime
Sub Test
dtmStartTime = Now
idTimer = window.setTimeout("PausedSection", 5000, "VBScript")
End Sub
Sub PausedSection
Msgbox dtmStartTime & vbCrLf & Now
window.clearTimeout(idTimer)
End Sub
</script>
<body>
<input id=runbutton type="button" value="Run Button" onClick="Test">
</body>
Run Code Online (Sandbox Code Playgroud)
有关完整说明,请参阅链接的博客文章,但基本上当单击按钮时,它会创建一个从现在开始触发5,000毫秒的计时器,并且当它触发时运行名为"PausedSection"的VBScript子例程,它清除计时器,并运行任何你想要的代码.
这是另一种选择:
Sub subSleep(strSeconds) ' subSleep(2)
Dim objShell
Dim strCmd
set objShell = CreateObject("wscript.Shell")
'objShell.Run cmdline,1,False
strCmd = "%COMSPEC% /c ping -n " & strSeconds & " 127.0.0.1>nul"
objShell.Run strCmd,0,1
End Sub
Run Code Online (Sandbox Code Playgroud)
睡眠功能时间以毫秒 (ms) 为单位
如果你想要 3 分钟,那就是这样做的方法:
WScript.Sleep(1000 * 60 * 3)
Run Code Online (Sandbox Code Playgroud)