|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Время выполнения скрипта в txt |
|
CMD/BAT - [решено] Время выполнения скрипта в txt
|
Старожил Сообщения: 157 |
Нужно измерить время выполнения батника.
Задача по сути проста и решение многим пригодится, но вот реализацию в инете не нашёл. Нужно в батник запихнуть код, который будет создавать текстовый файл в папке с батником. В txt-файле будет указана дата и время запуска батника и сколько минут он выполнялся. TXT файл не должен удалятся или перезаписываться. В него должно дописываться каждое новое выполнение скрипта. Буду благодарен за помощь. |
|
Отправлено: 14:38, 06-08-2018 |
Сообщения: 53488
|
Профиль | Отправить PM | Цитировать s.i.p.a, примеры в теме:
Calculate time difference in Windows batch file Для себя использую упрощённый вариант без учёта локализации, с точностью до секунд (без сотых долей) и разницей в пределах 24 часов: @Echo Off
SetLocal EnableDelayedExpansion
Set LogFile=timeLog.txt
Set Date1=!Date!
Set Time1=!Time:~0,-3!
Здесь вставьте команды, время выполнения которых надо измерить.
Set Date2=!Date!
Set Time2=!Time:~0,-3!
Set T1=!Time1: =0!
Set T2=!Time2: =0!
Set /A TimeDiff=1!T2:~6,2!-1!T1:~6,2!+60*^(1!T2:~3,2!-1!T1:~3,2!^)+3600*^(1!T2:~0,2!-1!T1:~0,2!^)
If !TimeDiff! LSS 0 Set /A TimeDiff+=86400
Set /A SS=TimeDiff%%60+100,TimeDiff/=60,MM=TimeDiff%%60+100,HH=TimeDiff/60
Set TimeDiff=!HH!:!MM:~1,2!:!SS:~1,2!
If Exist %LogFile% Echo.>>%LogFile%
(
If !Date1!==!Date2! (
Echo Начало: !Date1! !Time1: =! Завершение: !Time2: =!
) Else (
Echo Начало: !Date1! !Time1: =! Завершение: !Date2! !Time2: =!
)
Echo Время выполнения: !TimeDiff!
)>>%LogFile%
|
Последний раз редактировалось Petya V4sechkin, 06-08-2018 в 20:09. Отправлено: 19:51, 06-08-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать @Echo Off
Set "Log=Z:\Box_Out\logfile.txt"
Set "Mess=%~nx0 Start=%Date%-%Time%"
Call :Minutes "%Date% %Time%" "Day1" "Min1"
rem Здесь код, продолжительность исполнения которого измеряем (в минутах)
Call :Minutes "%Date% %Time%" "Day2" "Min2"
Set /A DOld=(%Day2%-%Day1%)*1440+%Min2%-%Min1%
>>"%Log%" Echo %Mess% End=%Date%-%Time% Duration=%DOld% min
GoTo :Eof
:Minutes
SETLOCAL
FOR /F "tokens=1,2,3,4,5 delims=.:,/ " %%i IN ("%~1") DO Set "Day=0%%i" &Set "Month=0%%j" &Set "Year=%%k" &Set "Hour=0%%l" &Set "Min=0%%m"
Set /A Day=1%Day:~-2%-100
Set /A Month=1%Month:~-2%-100
Call :JulianDay %Day% %Month% %Year% "Day"
ENDLOCAL &(Set /A %~2=%Day% &Set /A %~3=1%Hour:~-2%*60+1%Min:~-2%-6100)
GoTo :Eof
:JulianDay
Set /A %~4=(1461*(%3+4800+(%2-14)/12))/4+(367*(%2-2-12*((%2-14)/12)))/12-(3*((%3+4900+(%2-14)/12)/100))/4+%1-32075
Exit /B
|
------- Отправлено: 21:25, 06-08-2018 | #3 |
Старожил Сообщения: 157
|
Профиль | Отправить PM | Цитировать Спасибо ребята. Код рабочий. Очень помогли.
|
Отправлено: 09:57, 08-08-2018 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Самоудаление скрипта после выполнения | BKPB | Скриптовые языки администрирования Windows | 13 | 21-06-2017 14:04 | |
CMD/BAT - [решено] пауза перед началом выполнения скрипта | Genka | Скриптовые языки администрирования Windows | 5 | 25-01-2014 21:00 | |
Логирование выполнения скрипта | Alkantel | AutoIt | 3 | 30-08-2013 13:36 | |
подсчет времени выполнения скрипта на PHP | Vlad Drakula | Вебмастеру | 2 | 13-10-2003 16:20 | |
log выполнения Perl CGI-скрипта | CBMen | Вебмастеру | 1 | 23-03-2003 14:18 |
|