我发现
!time!
没有更新或延迟,当我运行这个批处理可能 1 或 2 天后。
一开始,
current_hour
是正确的,大约18小时,但后来,我看到它被延迟了。
例如,实际时间是早上 8:00,但它仍然显示为早上 7:30。
setlocal EnableDelayedExpansion
set target_hour="18"
:loop
set current_hour=!time:~0,2!
set current_min=!time:~3,2!
echo current_hour = !current_hour!
echo current_min = !current_min!
IF "!current_hour!" == !target_hour! (
echo It is time to do foo.
) ELSE (
echo current_hour = !current_hour!
echo target_hour = !target_hour!
echo Waiting until !target_hour!:00...
timeout /t 60
goto loop
)
timeout 1000
goto loop