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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Время выполнения скрипта в txt

Ответить
Настройки темы
CMD/BAT - [решено] Время выполнения скрипта в txt

Старожил


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

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


Изменения
Автор: s.i.p.a
Дата: 06-08-2018
Нужно измерить время выполнения батника.
Задача по сути проста и решение многим пригодится, но вот реализацию в инете не нашёл.

Нужно в батник запихнуть код, который будет создавать текстовый файл в папке с батником. В txt-файле будет указана дата и время запуска батника и сколько минут он выполнялся. TXT файл не должен удалятся или перезаписываться. В него должно дописываться каждое новое выполнение скрипта.

Буду благодарен за помощь.

Отправлено: 14:38, 06-08-2018

 


Moderator


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

Профиль | Отправить 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


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

Профиль | Отправить 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
Благодарности: 2

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


Спасибо ребята. Код рабочий. Очень помогли.

Отправлено: 09:57, 08-08-2018 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Время выполнения скрипта в txt

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход