level 12
命幽
楼主
::
误差在10毫秒内
@ECHO OFF
SETLOCAL
ECHO %TIME%
CALL :Sleep %1
ECHO %TIME%
ENDLOCAL
GOTO :EOF
:Sleep
SETLOCAL EnableExtensions
FOR /f "tokens=2-4 delims=:. " %%a IN ("%TIME%") DO (
SET /a min_p=1%%a
SET /a csec_p=1%%b%%c
)
SET /a min_p=%min_p%-100
SET /a csec_p=%csec_p%-10000
:_procwaitloop
FOR /f "tokens=2-4 delims=:. " %%i IN ("%TIME%") DO (
SET /a min=1%%i
SET /a csec=1%%j%%k
)
SET /a min=%min%-100
SET /a csec=%csec%-10000
IF %csec% LSS %csec_p% (
SET /a csec=6000+%csec%-%csec_p%
SET /a reg=1
) ELSE (
SET /a csec=%csec%-%csec_p%
SET /a reg=0
)
IF %min%-%reg% LSS %min_p% (
SET /a min=60+%min%-%reg%-%min_p%
) ELSE (
SET /a min=%min%-%reg%-%min_p%
)
SET /a delta=%min%*6000+%csec%
IF %delta% LSS %1 GOTO _procwaitloop
ENDLOCAL
GOTO :EOF
2013年07月31日 17点07分
1
误差在10毫秒内
@ECHO OFF
SETLOCAL
ECHO %TIME%
CALL :Sleep %1
ECHO %TIME%
ENDLOCAL
GOTO :EOF
:Sleep
SETLOCAL EnableExtensions
FOR /f "tokens=2-4 delims=:. " %%a IN ("%TIME%") DO (
SET /a min_p=1%%a
SET /a csec_p=1%%b%%c
)
SET /a min_p=%min_p%-100
SET /a csec_p=%csec_p%-10000
:_procwaitloop
FOR /f "tokens=2-4 delims=:. " %%i IN ("%TIME%") DO (
SET /a min=1%%i
SET /a csec=1%%j%%k
)
SET /a min=%min%-100
SET /a csec=%csec%-10000
IF %csec% LSS %csec_p% (
SET /a csec=6000+%csec%-%csec_p%
SET /a reg=1
) ELSE (
SET /a csec=%csec%-%csec_p%
SET /a reg=0
)
IF %min%-%reg% LSS %min_p% (
SET /a min=60+%min%-%reg%-%min_p%
) ELSE (
SET /a min=%min%-%reg%-%min_p%
)
SET /a delta=%min%*6000+%csec%
IF %delta% LSS %1 GOTO _procwaitloop
ENDLOCAL
GOTO :EOF