Узнать время выполнения cmd скрипта


 Подсчитать время выполнения в cmd-скрипте можно разными способами. Один из них - спомощью утилиты из ресурскита timethis.exe
  • Timethis (timethis.exe): Это средство командной строки вычисляет, сколько занимает системы для выполнения команды. Чтобы загрузить данное средство, щелкните следующую ссылку:
    http://Download.Microsoft.com/download/win2000platform/timethis/1.00.0.1/NT5/EN-US/timethis_setup.exe (http://download.microsoft.com/download/win2000platform/timethis/1.00.0.1/NT5/EN-US/timethis_setup.exe)
Ее удобно использовать чтобы узнать время выполнения какой-либо команды. Но если нужно узнать время выполнения всего скрипта, то стоит обратить внимание на такой интересный способ получения времени выполнения через WMIC:



 Перед выполнением команды вызываем :SaveTime, а после - :DiffTime

Пример батника. Архивируем папку и смотрим сколько это заняло времени.


SET SourceDir = C:\temp
SET DestDir = D:\Backup


Call :SaveTime
"C:\Program Files\7-Zip\7z" a -tzip %SourceDir%\SourceDir.zip %DestDir%\

Call :DiffTime
Echo Running time %DiffTime% sec
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

1 комментарий:

dragodile комментирует...

set beg=%time%
...
set /a ss=%time:~0,2%*3600+1%time:~3,2%*60+1%time:~6,2%-%beg:~0,2%*3600-1%beg:~3,2%*60-1%beg:~6,2%

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