Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] подсчет времени выполнения командного файла (http://forum.oszone.net/showthread.php?t=144189)

mitiya 04-07-2009 11:33 1158752

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

amel27 04-07-2009 12:26 1158773

mitiya, никак - батники работают только с целыми величинами... собственно, какая нужда?

mitiya 04-07-2009 13:17 1158805

да хотел посчитать время выполнения батника. время от тоже вычитать правильно не хочет, думал руками написать что куда.

amel27 04-07-2009 13:57 1158831

Цитата:

Цитата mitiya
хотел посчитать время выполнения батника »

типа такого?
Код:

@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 1902927

Я вот так сделал:
Код:

@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 2338269

Цитата:

Цитата mitiya
да хотел посчитать время выполнения батника. время от тоже вычитать правильно не хочет, думал руками написать что куда. »

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


Время: 14:40.

Время: 14:40.
© OSzone.net 2001-