首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环VBScript

循环VBScript
EN

Stack Overflow用户
提问于 2017-01-29 08:09:48
回答 2查看 1.9K关注 0票数 2

我尝试运行一个VBScript来检查时间,直到它到达22:00 (10‘m),然后运行shutdown.bat。我总是收到这样的错误:“没有‘do’的‘loop’”。有没有人可以看一下我的代码,看看有没有办法修复它?

代码语言:javascript
复制
Do 
    If Hour(Time()) => 22 And Minute(Time()) => 30 And Hour(Time()) < 23 Then
Loop Until True
    Then
        'Dim shell
        Set shell = CreateObject("WScript.Shell")
        shell.Run "shutdown.bat"
        Set shell = Nothing
    End If
EN

回答 2

Stack Overflow用户

发布于 2017-01-29 08:32:15

如果你真的想让一个循环一直运行到某个特定的小时,下面是它的实现方法:

代码语言:javascript
复制
Do While True ' = Do the following forever (or until something breaks the loop)
    If Hour(Time()) => 22 And Minute(Time()) => 30 And Hour(Time()) < 23 Then
        ' Do whatever you want and then
        ' break the loop:
        Exit Do
    End If
Loop

但是,我不建议这样做,因为它将消耗大量资源。相反,您应该使用Task Scheduler

希望这能有所帮助:)

票数 2
EN

Stack Overflow用户

发布于 2017-01-29 11:14:58

循环直到当前时间大于所需的结束时间:

代码语言:javascript
复制
endtime = CDate("22:30")
Do Until Time > endtime
  WScript.Sleep 100
Loop
CreateObject("WScript.Shell").Run "shutdown.bat"

在循环中使用WScript.Sleep可以确保循环不会耗尽CPU。

但是,正如@AhmedAbdelhameed已经提到的,创建在所需时间运行shutdown.bat的计划任务通常效率要高得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41916291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档