【问题标题】:Running apps at scheduled times在预定时间运行应用程序
【发布时间】:2018-03-15 02:07:24
【问题描述】:

我运行的是 Windows 7。我需要每天运行 3 次应用程序,间隔 8 小时。该应用程序需要在09:00-09:1517:00-17:1512:00-12:15 的窗口内运行。完成任务只需大约 1 分钟。目前,我正在尝试将当前时间与上述时间窗口之一进行比较,然后运行该应用程序。
现在,当它运行时,它直接进入 8 小时超时例程。我不知道如何使这项工作。 我有两个:RUN:TIMEOUT 例程,它们单独运行良好。我只是无法让它在某些时候运行。这是我的逻辑。

IF TIME GTR "0900" & IF TIME  LSS "0915"  GOTO RUN, GOTO TIMEOUT

IF TIME GTR "1700" & IF TIME  LSS "1715"  GOTO RUN, GOTO TIMEOUT

IF TIME GTR "1200" & IF TIME  LSS "1215" GOTO RUN, GOTO TIMEOUT

【问题讨论】:

  • 你应该看看 Windows 任务计划程序。
  • 这就是我开始的地方,但在日程安排上遇到了同样的问题。无论我将所有 3 次都放在一个触发器中,还是为 3 次中的每一个都制作不同的触发器,都行不通。时代来了又去,但没有运行应用程序。这就是我采用批处理文件方式的原因。

标签: file batch-file math


【解决方案1】:

这应该是你想要的:

@echo off
for /f "delims=" %%G in ('powershell get-date -format "HM"') do set currentTime=%%G

if %currentTime% gtr 900 (
   if %time% lss 915 (
       goto run

   )
)

if %currentTime% gtr 1700 (
   if %time% lss 1715 (
       goto run

   )
)

if %currentTime% gtr 1200 (
   if %time% lss 1215 (
       goto run
   )
)

另外,请将timeout 命令移到:run 例程的末尾。


这个脚本可以:

  • HM格式获取当前时间(去掉尾随0)
  • HM 时间与预设时间进行比较
  • 根据结果执行goto

【讨论】:

  • 时间变量因地区而异。它在用户计算机上的输出可能与您的不同。
  • 我明白这一点。也许我会把它改成wmic。希望它将是区域性的in
  • @Squashman 我已经编辑了脚本,所以它应该是区域独立的。
  • 谢谢大家。我永远无法编写该代码。效果很好!我现在正在运行脚本,它几乎按预期运行。无论需要多少时间,它都会连续运行。一个问题,我需要一个powershell脚本吗?如果是这样,我将如何设置它?我从来没有用过PS。
  • 不需要PS脚本。只需复制代码,您就可以开始了。如果您觉得它有用,请随时点赞或接受我的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-07
  • 2013-08-05
  • 2018-02-24
  • 1970-01-01
  • 2023-04-07
  • 2014-09-03
  • 2011-09-06
相关资源
最近更新 更多