|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как в .bat сделать секундомер? |
|
|
CMD/BAT - Как в .bat сделать секундомер?
|
Новый участник Сообщения: 6 |
Здравствуйте! Не подскажете как в .bat можно было бы сделать секундомер?
Например мы его открываем и там появляется: Прошло 0 дн. 13ч. 11мин. 5сек. Чтобы считал после открытия |
|
Отправлено: 14:37, 15-05-2018 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Я сделал примерный код, но у меня есть проблема - секунды/минуты и тд. после прохождения не обнуляются.
То есть: Прошло 179346 сек. 2989,1 мин. 49,8 ч. 2 дн. Я хотел бы сделать так чтобы после прохождения 60сек. они обнулялись и начинали сначала "1 2 3 4", при этом переходя в минуты. Вот мой код: @echo off set var=peremenna9 set /a var=1 goto st :loop ping -n 2 127.0.0.1 > nul :st title Счётчик работает %var% сек cls Echo. Echo. Echo. Echo (пк)Счётчик работает %var%сек. %mn% мин. %ho%ч. %dn%дн. set /a var+=1 set /a mn=%var%/60 set /a ho=%mn%/60 set /a dn=%ho%/24 color e goto loop |
Отправлено: 14:42, 15-05-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать DenchickDenchick, а) так секундомеры не пишут, б) работать с датой/временем на пакетных файлах можно, но чересчур муторно и ненаглядно.
|
Отправлено: 20:46, 15-05-2018 | #3 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать DenchickDenchick, только получается программу написать хотели вы, а написал ее вместо вас я, типа украл идею.
|
Отправлено: 01:02, 16-05-2018 | #4 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать alpap, спасибо за помощь, но здесь что-то немного не так. Скорее всего я не совсем верно сформулировал свой вопрос
![]() После прохождения 60 сек он переходит в 1 мин, но после повторного прохождения 60 сек далее не прибавляются минуты, часы, дни и так далее. |
|
Отправлено: 14:50, 16-05-2018 | #5 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Самое забавно начнется когда эта штука заработает. Тогда я предложу заценить разницу между этим "секундометром" и обычным на промежутке времени, например, в сутки.
|
Отправлено: 15:12, 16-05-2018 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата DenchickDenchick:
@echo off set /a "ss=0,mm=0,hh=0,dd=0" :s >nul ping -n 2 127.0.0.1& set /a ss+=1 if %ss%==60 set /a mm+=1,ss=0 if %mm%==60 set /a hh+=1,mm=0 if %hh%==24 set /a dd+=1,hh=0 if %dd%==365 echo Процессор сдох& pause echo Счётчик работает: %ss% сек,%mm% мин,%hh% час,%dd% дн goto s pause Цитата Elven:
|
||
Отправлено: 16:08, 16-05-2018 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Я лично вообще не понимаю, в чём смысл авторского видения вопроса. Во-первых, как уже было неоднократно сказано, код считает не секунды, а время исполнения утилиты ping.exe. Во-вторых, ничего ценного и полезного, окромя вышеуказанного, код не делает (и не может делать в принципе). Так что на самом деле было нужно?
|
Последний раз редактировалось Iska, 17-05-2018 в 07:09. Причина: Грамматика: добавил пропущенную запятую Отправлено: 23:12, 16-05-2018 | #8 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Iska, да так, ради интереса.
|
Отправлено: 10:35, 19-05-2018 | #9 |
Ветеран Сообщения: 2732
|
Профиль | Отправить PM | Цитировать DenchickDenchick,
Если не жалко грузить процессор дурной работой, то из любви к абстрактному искусству:
@Echo Off
cls
Set /A Days=0
Set "T00=%Time%"
Call :TtoN "%T00%" "N0"
Set "D0=%Date%"
Set "D00=%D0%"
:Begin
Call :TtoN "%Time%" "Nt"
If Not "%Date%"=="%D0%" (Set "D0=%Date%" &Set /A Days=%Days%+86400)
Set /A Nt=Nt+%Days%-%N0%
Call :NtoT %Nt% "DD" "HH" "MM" "SS"
cls
Echo Прошло DD:HH:MM:SS=%DD%:%HH%:%MM%:%SS% с момента %D00% %T00:~0,-3%
TimeOut /T 1 >nul
GoTo :Begin
GoTo :Eof
:TtoN
SetLocal &Set "tt=%~1"
Set "tt=%tt: =0%"
Set /A tt=1%tt:~6,2%-100+(1%tt:~3,2%-100)*60+(1%tt:~0,2%-100)*3600
EndLocal &Set "%~2=%tt%"
GoTo :Eof
:NtoT
SetLocal
Set /A tt2=%1/86400+100
Set /A tt3=(%1-(%tt2%-100)*86400)/3600+100
Set /A tt4=(%1-(%tt2%-100)*86400-(%tt3%-100)*3600)/60+100
Set /A tt5=(%1-(%tt2%-100)*86400-(%tt3%-100)*3600-(%tt4%-100)*60)+100
EndLocal &Set "%~2=%tt2:~1,2%" &Set "%~3=%tt3:~1,2%" &Set "%~4=%tt4:~1,2%" &Set "%~5=%tt5:~1,2%"
GoTo :Eof
TimeOut /T 1 >nul Это снизит дурную нагрузку на процессор, но, возможно, некоторое значение секунд при отображении будет пропущено. Но накопление погрешности отображения секунд в случае, как это было у alpap, не будет |
------- Последний раз редактировалось megaloman, 19-05-2018 в 11:07. Отправлено: 10:42, 19-05-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Как сделать не закрывающийся .Bat | Aifear | Скриптовые языки администрирования Windows | 6 | 15-11-2016 18:15 | |
CMD/BAT - Как сделать скриншот экрана через cmd или bat? | bobojonkholikov | Скриптовые языки администрирования Windows | 11 | 12-07-2015 02:33 | |
CMD/BAT - Как в .bat сделать вывод информации правах? | Eugene Shugaev | Скриптовые языки администрирования Windows | 4 | 12-03-2014 11:55 | |
CMD/BAT - [решено] Запуск bat-файла от имени админа.Как сделать каталог этого bat-файла текущим?? | axmed0207 | Скриптовые языки администрирования Windows | 1 | 19-01-2012 06:14 | |
Как сделать общий почтовый ящик с помощью The Bat! | ivieDVeD | Хочу все знать | 1 | 15-03-2008 16:48 |
|