2 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 185
|
|
1 | |
Синхронизация времени с корректировкой03.05.2017, 16:53. Показов 30108. Ответов 22
Метки нет (Все метки)
Здравствуйте сам я в программировании профан, но реалии жизни вынуждают. Вот решил обратиться к специалистам.
Суть моей проблемы в следующем: как с помощью (CMD/BAT) синхронизировать системное время на компьютере с сервером ntp21.vniiftri.ru (89.109.251.21) и прибавить к нему 5 секунд после синхронизации (5 секунд это для примера, нужно будет подбирать данный параметр опытным путём)? Корректировка не будет превышать 10 секунд.
0
|
03.05.2017, 16:53 | |
Ответы с готовыми решениями:
22
Синхронизация времени по локальной сети Синхронизация времени Windows Server 2008 с сервером времени Синхронизация времени в AD синхронизация времени |
04.05.2017, 00:49 | 2 | |||||
Updated. Изменил блок синхронизации. Чтобы новый сервер подтягивался службой времени ее нужно либо останавливать и после реконфигурации перезапускать, либо использовать параметр /update в w32tm.
2
|
2 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 185
|
|
04.05.2017, 07:59 [ТС] | 3 |
Спасибо, всё работает как нужно. С некоторыми параметрами (служб) поэкспериментирую.
Добавлено через 3 часа 59 минут А как добавить не целые секунды, а с десятыми долями?
0
|
04.05.2017, 10:35 | 4 |
Просто добавить доли не получится - cmd работает только с целыми числами.
Поэтому нужно формулу расчета времени переводить на миллисекунды - тогда и итоговое время будет с миллисекундами. Немного попозже попробую перевести.
0
|
2 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 185
|
|
04.05.2017, 10:42 [ТС] | 5 |
Заранее благодарен вам за оказанную помощь. Без вас я бы ни за что не не осилил этот вопрос. Если в VBA хоть что-то понятно, то в (CMD/BAT) для меня просто набор знаков
0
|
04.05.2017, 10:51 | 6 | ||||||||||
В принципе, если вам точный перевод времени не нужен - достаточно просто к итоговой строке времени
1
|
2 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 185
|
|||||||||||
04.05.2017, 11:27 [ТС] | 7 | ||||||||||
Спасибо, всё гениальное-просто!!!!!!
Добавлено через 22 минуты Для корректного суммирования поменял параметр
0
|
04.05.2017, 12:21 | 8 | |||||
А вот здесь я не понял :-) Здесь делается замена возможного пробела в числах на 0 (пробел вместо ведущего ноля может появляться во времени до 10 утра).
------------------------------------ Формулу на миллисекунды на перевел, однако подстановка результата дает странный эффект: Ввожу 1500 миллисекунд. Код
============================ [ENTER the offset in milliseconds]:1500 ============================ ТЕКУЩЕЕ ВРЕМЯ:12:02:59,70 ============================ (12 * 3600 * 1000) + (02 * 60 * 1000) + (59 * 1000) + 70 = 43379070 43379070 + 1500 = 43380570 ============================ НОВОЕ ВРЕМЯ: 12:3:0,57 ============================ time before: 12:02:59,70 time new: 12:3:0,57 time after: 12:03:00,05
Новое время должно быть 12:3:0,57 , однако time делает из 57 сотых => 5 сотых. И так постоянно.Где тут косяк :-)?
0
|
04.05.2017, 13:50 | 10 |
YuS_2,
Ну здесь - (12 * 3600 * 1000) - должно получиться целое число миллисекунд равное 12 часам=43200000. Разве нет? Добавлено через 5 минут А вот с прибавлением + 70 похоже косяк. Там же доли: 70 это 0.7, то есть 700 мск. Добавлено через 44 минуты А еще косяк, что числа типа 08 и 09 будут cmd забракованы из-за ведущего ноля. Но это понятно как исправить: добавлением единицы и вычитанием 100.
0
|
2 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 185
|
|
04.05.2017, 14:12 [ТС] | 12 |
Это я не вовремя проверял, надо утром с 8 до 10 тестировать.
0
|
04.05.2017, 14:25 | 13 | |||||
lapin9126,
Просто замените в коде цикл на этот:
Миллисекунды добавляйте как вы это делаете сейчас - просто помните, что на самом деле вы добавляете не целое число, а сотые доли от секунды. ---------------------------------- Что касается формулы перевода в миллисекунды: мне кажется тут бессмысленно бодаться с time - она воспринимает целое число миллисекунд, которое точно высчитывает формула, как сотую долю от секунды - то есть автоматом это число делит на 100, вместо того, чтобы принять то, что ей дают как готовый отформатированный набор чисел.
0
|
2 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 185
|
||||||
04.05.2017, 14:44 [ТС] | 14 | |||||
Я правильно понял конечный код должен быть такой:
0
|
04.05.2017, 15:24 | 15 |
Да, пока это все что я могу предложить.
P.S. Пробелы в присвоениях переменных - до и после знака равно - лучше убрать. Они в батниках как минимум нежелательны, как максимум приводят к ошибкам, хотя при сложении чисел вроде не влияют. Это у меня python code style уже мешает батники правильно писать :-)
0
|
2 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 185
|
|
05.05.2017, 04:22 [ТС] | 16 |
Хорошо, подправлю. Еще раз благодарю за помощь.
Добавлено через 12 часов 15 минут Протестировал сегодня утром с 8 часов. 08 в CMD считает 8-ричной системой счисления и вот что получается. Надо искать альтернативный метод. Отправка команды синхронизации на локальный компьютер Команда выполнена успешно. ============================ сервер синхронизации: ntp2.stratum2.ru ============================ [ENTER the offset in seconds]:5 ============================ ТЕКУЩЕЕ ВРЕМЯ: 8:19:00,15 ============================ (08 * 3600) + (19 * 60) + 00 = 1140 1140 + 5 = 1145 ============================ НОВОЕ ВРЕМЯ: 0:19:5 ============================ time before: 8:19:00,16 time new: 0:19:5 time after: 0:19:04,99 Для продолжения нажмите любую клавишу . . .
0
|
2 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 185
|
||||||
05.05.2017, 15:47 [ТС] | 18 | |||||
Да кто его знает. Может в коде что-то не так. Спасибо за помощь. Пытаюсь на VBS написать.
0
|
2 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 185
|
|
05.05.2017, 16:17 [ТС] | 20 |
Прошу прощения, с утра наверно еще не проснулся и не то скопировал.
0
|
05.05.2017, 16:17 | |
05.05.2017, 16:17 | |
Помогаю со студенческими работами здесь
20
Синхронизация времени клиентов с сервером Синхронизация времени между серверами Синхронизация времени Windows server 2003 Синхронизация времени контроллера домена от рабочей станции Синхронизация времени с внешним NTP сервером в Windows Server 2008 R2 Windows Server 2008 R2 синхронизация времени с сервером ntpd в локальной сети Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |