我一直在编写一个小东西,相当愚蠢,已经花了我一段时间。它的意图是在两个特定时间(4:30和5:30)之间打开一个特定的Excel电子表格(名为Homework.xlsx)。事情是它实际上并没有保持开放以检查那些时间,即使我将它设置为每分钟重复一次的循环。 这是代码:
{{1}}
答案 0 :(得分:1)
您的代码不仅错综复杂,而且效率低下。如果目的是打开Monday..Friday @ %stime%...%etime%
范围内的Excel电子表格,那么有更简单的方法可以做到这一点。例如:
SET "stime=16:30:00.00"
SET "etime=17:30:00.00"
:start
rem Check the day
FOR /F %%F IN ('wmic path win32_localtime get dayofweek^|Findstr [0-6]') DO SET DOW=%%F
IF %DOW% EQU 0 GOTO wait1hour
IF %DOW% EQU 6 GOTO wait1hour
rem Check the time
IF %time% LSS %stime% GOTO wait1min
IF %time% GTR %etime% GOTO wait1min
rem Open the spreadsheet and wait until it is closed
START /MAX C:\Users\Hunter\OneDrive\Homework.xlsx | PAUSE > NUL
GOTO start
:wait1min
TIMEOUT 60 /NOBREAK > NUL
GOTO start
:wait1hour
TIMEOUT 3600 /NOBREAK > NUL
GOTO start
如果%time%
检查失败,您还可以计算等待的确切秒数,因此等待方法更有效;我建议您使用this method进行此类计算。您也可以使用Windows任务计划程序在所需的小时内在Mon..Fri范围内启动该程序。