在预定时间运行应用程序

时间:2017-10-03 19:29:29

标签: file batch-file math

我正在运行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

1 个答案:

答案 0 :(得分:0)

这应该是你想要的:

@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