1

这可以持续数小时,一旦执行到 13 小时,就会在循环中运行。

@ECHO OFF

:time
echo %time%
FOR /f "tokens=1*delims=0" %%a IN ("$0%time:~0,2%") DO SET /a HH=%%b
IF %HH% equ 13 goto success
goto time

:success
echo success finally
pause
goto time

但是如果我在循环中运行它几秒钟以使其在 13 秒时执行,它只会继续循环运行并且不执行命令。

@ECHO OFF

:time
echo %time%
FOR /f "tokens=1*delims=0" %%a IN ("$0%time:~5,2%") DO SET /a SS=%%b
IF %SS% equ 13 goto success
goto time

:success
echo success finally
pause
goto time

这也不起作用

FOR /f "tokens=1*delims=0" %%a IN ("$0%time:~6,2%") DO SET /a SS=%%b

我需要它在任何指定的秒数内执行。因此,而不是例如在 13:00:00.00 执行。我可以让它在 13:00:13.00 或类似的时间执行。

4

1 回答 1

0

偏移量需要是 6 而不是 5。

%time:~6,2%

它不必很复杂。这可行,但除非您提供有关您要完成的工作的更多详细信息,否则我们无法提供最佳帮助。

:time
echo %time%
IF %time:~6,2% equ 13 goto success
goto time

请注意,使用time环境变量是特定于用户区域设置的。

使用类似无语言环境格式时间的东西。

wmic path win32_operatingsystem get LocalDateTime
于 2013-07-10T21:15:57.597 回答