Windows 时间没有在 for 循环中更新,即使是 EnableDelayedExpansion

问题描述 投票:0回答:0

我发现

!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
windows batch-file
© www.soinside.com 2019 - 2024. All rights reserved.