![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вычисление времени работы скрипта |
|
CMD/BAT - [решено] Вычисление времени работы скрипта
|
![]() Пользователь Сообщения: 90 |
нашел такой вот код:
@echo off set timeS=%time% pause&:: сюда вставить код set timeE=%time% set /a timeMS=100+1%time:~-2%-1%timeS:~-2% set /a timeSS=60+1%time:~6,2%-1%timeS:~6,2% set /a timeMM=60+1%time:~3,2%-1%timeS:~3,2% set /a timeHH=24+1%time:~0,2%-1%timeS:~0,2% if %timeMS% lss 100 (set /a timeSS-=1) else (set /a timeMS-=100) if %timeSS% lss 60 (set /a timeMM-=1) else (set /a timeSS-=60) if %timeMM% lss 60 (set /a timeHH-=1) else (set /a timeMM-=60) if %timeHH% geq 24 (set /a timeHH-=24) echo %timeS% echo %timeE% echo.%timeHH%:%timeMM%:%timeSS%,%timeMS% pause Надо именно показывать в формате чч:мм:сс |
|
Отправлено: 12:01, 17-02-2016 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать наверное проблема в том, что с точки зрения cmd, например, 5 и 05 это разные числа (точнее в разных системах счисления). Соответственно для чисел от 0 до 8 нужно дописывать спереди 0.
|
Отправлено: 12:12, 17-02-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Пользователь Сообщения: 90
|
Профиль | Отправить PM | Цитировать Цитата Elven:
|
|
Отправлено: 12:21, 17-02-2016 | #3 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Вынужден признать, что мое предположение оказалось ошибочным.
Дело было не в неправильном понимании cmd/bat различных систем счисления (хотя на такое я тоже напарывался), а в лишнем пробеле образующемся при изъятии числа часов для однозначных чисел. Вот эта строка при подстановке приобретает вид: (при двухзначном значении часа, например "13", и, редположим, что час смениться не успел) Так все считается нормально и красиво, но! если количество часов однозначное (например "5", и, опять же, предположим, что час смениться не успел) это выражение превращаеся в Такую абракадабру бедняга set посчитать уже не осилит. В результате конечный код может выглядеть как-то так: @echo off set timeS=%time% pause&:: сюда вставить код set timeE=%time% set /a timeMS=100+1%timeE:~-2%-1%timeS:~-2% set /a timeSS=60+1%timeE:~6,2%-1%timeS:~6,2% set /a timeMM=60+1%timeE:~3,2%-1%timeS:~3,2% if %timeE:~0,2% LSS 10 ( if %timeS:~0,2% LSS 10 ( set /a timeHH=24+10%timeE:~1,1%-10%timeS:~1,1% ) else ( set /a timeHH=24+10%timeE:~1,1%-1%timeS:~0,2% )) else ( if %timeS:~0,2% LSS 10 ( set /a timeHH=24+1%timeE:~0,2%-10%timeS:~1,1% ) else ( set /a timeHH=24+1%timeE:~0,2%-1%timeS:~0,2% )) if %timeMS% lss 100 (set /a timeSS-=1) else (set /a timeMS-=100) if %timeSS% lss 60 (set /a timeMM-=1) else (set /a timeSS-=60) if %timeMM% lss 60 (set /a timeHH-=1) else (set /a timeMM-=60) if %timeHH% geq 24 (set /a timeHH-=24) echo %timeS% echo %timeE% echo.%timeHH%:%timeMM%:%timeSS%,%timeMS% pause |
Последний раз редактировалось Elven, 17-02-2016 в 13:40. Отправлено: 13:31, 17-02-2016 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Автоматический запуск скрипта PowerShell по времени. | KAB | Скриптовые языки администрирования Windows | 7 | 06-03-2012 10:20 | |
2007 - Excel | Вычисление времени в Excel | Vowan | Microsoft Office (Word, Excel, Outlook и т.д.) | 1 | 01-02-2010 17:09 | |
Автоматический запуск скрипта по времени | Non-Stop | Общий по Linux | 20 | 02-12-2006 15:17 | |
как произвесит расчет времени выполнения скрипта | Vlad Drakula | Вебмастеру | 1 | 10-12-2003 00:05 | |
подсчет времени выполнения скрипта на PHP | Vlad Drakula | Вебмастеру | 2 | 13-10-2003 16:20 |
|