Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


Цитата gora:
:Wait rem Здесь варианты задержки для изменения скорости вращения »
можно вызывать типовую процедуру таймера (В начало пакетного файла ОБЯЗАТЕЛЬНО включить код SetLocal EnableExtensions):

Код: Выделить весь код
:Timer
set ExitCode=0
set CTime=%Time:,=%
set CTime=%CTime::=%
if "%Timer%"=="" set /A Timer=%CTime%+%1
if /I %Timer% GEQ 24000000 set /a %CTime%+=24000000
if /I %Timer% LEQ %CTime% (
set ExitCode=1
set /a Timer+=%1
if /I %Timer% GEQ 24000000 set /a %Timer%-=24000000
)
exit /b %ExitCode%
Вызывать так call :Timer XX, где XX - задержка в сотых долях секунды,
а проверять, прошло ли нужное время, через переменную %ErrorLevel% - ноль означает, что время еще не наступило и можно пока еще что-нить сделать полезное.
т.е. этот таймер без ожидания!
... что-то наколбасил тут, вобщем перед использованием смотрим пример: На экран будет выводится следующее пороговое значение таймера ТОЛЬКО когда таймер срабатывает!

Пример использования:
Код: Выделить весь код
@Echo off
SetLocal EnableExtensions

:loop
call :Timer 20
if ErrorLevel 1 Echo %Timer%
Goto loop

:Timer
set ExitCode=0
set CTime=%Time:,=%
set CTime=%CTime::=%
if "%Timer%"=="" set /A Timer=%CTime%+%1
if /I %Timer% GEQ 24000000 set /a %CTime%+=24000000
if /I %Timer% LEQ %CTime% (
set ExitCode=1
set /a Timer+=%1
if /I %Timer% GEQ 24000000 set /a %Timer%-=24000000
)
exit /b %ExitCode%

Отправлено: 21:54, 16-07-2009 | #24