PDA

Показать полную графическую версию : [решено] подсчет времени выполнения командного файла


mitiya
04-07-2009, 11:33
Не пойму как совершать вычисления с дробными числами, если записываю числа с запятой то ответ не тот, если с точкой, то пишет отсутствует оператор.

amel27
04-07-2009, 12:26
mitiya, никак - батники работают только с целыми величинами... собственно, какая нужда?

mitiya
04-07-2009, 13:17
да хотел посчитать время выполнения батника. время от тоже вычитать правильно не хочет, думал руками написать что куда.

amel27
04-07-2009, 13:57
хотел посчитать время выполнения батника »типа такого?
@Echo Off

Echo Скрипт выполняется, ждите...
Call :SaveTime

Ping -n 5 127.0.0.1 >Nul

Call :DiffTime
Echo Время выполнения %DiffTime% секунд
Echo.
Pause
Exit

:SaveTime
For /F "Tokens=1 Delims=." %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set $Time=%%i
Set $D0=%$Time:~6,2%
Set $H0=%$Time:~8,2%
Set $N0=%$Time:~10,2%
Set $S0=%$Time:~12,2%
GoTo :EOF

:DiffTime
For /F "Tokens=1 Delims=." %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set $Time=%%i
Set $D1=%$Time:~6,2%
Set $H1=%$Time:~8,2%
Set $N1=%$Time:~10,2%
Set $S1=%$Time:~12,2%

Set DiffTime=-1
If %$D1% EQU %$D0% Set /A DiffTime=%$S1%+(%$N1%*60)+(%$H1%*3600)-(%$H0%*3600)-(%$N0%*60)-%$S0%
GoTo :EOF

P.S. Можно и без WMI, через DATE/TIME - принцип одинаков

sLiDeR-X
20-04-2012, 06:45
Я вот так сделал:
@echo off

call :TimeCountBegin
ping -n 5 localhost
call :TimeCountEnd

pause
exit

:TimeCountBegin
set begin_HH=1%time:~0,2%
set /a begin_HH=%begin_HH%-100
set begin_MM=1%time:~3,2%
set /a begin_MM=%begin_MM%-100
set begin_SS=1%time:~6,2%
set /a begin_SS=%begin_SS%-100
goto :EOF

:TimeCountEnd
set end_HH=1%time:~0,2%
set /a end_HH=%end_HH%-100
set end_MM=1%time:~3,2%
set /a end_MM=%end_MM%-100
set end_SS=1%time:~6,2%
set /a end_SS=%end_SS%-100
set /a begin=(%begin_HH%*3600)+(%begin_MM%*60)+%begin_SS%
set /a end=(%end_HH%*3600)+(%end_MM%*60)+%end_SS%
set /a worktime=%end%-%begin%
set /a worktime_MM=%worktime%/60
set /a worktime_SS=%worktime%-%worktime_MM%*60
if %errorlevel%==0 echo. && echo Время обработки %worktime_MM% минут %worktime_SS% секунд.
goto :EOF

Опиум
15-04-2014, 10:42
да хотел посчитать время выполнения батника. время от тоже вычитать правильно не хочет, думал руками написать что куда. »

я для этого написал утилитку timemer.exe http://forum.oszone.net/post-2275768-8.html




© OSzone.net 2001-2012