Синхронизация времени windows 10 bat


This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

Show hidden characters

Rem run as administrator
@echo on & @setlocal enableextensions
@echo =========================
@echo Turn off the time service
net stop w32time
@echo ======================================================================
@echo Set the SNTP (Simple Network Time Protocol) source for the time server
w32tm /config /syncfromflags:manual /manualpeerlist:«0.it.pool.ntp.org 1.it.pool.ntp.org 2.it.pool.ntp.org 3.it.pool.ntp.org«
@echo =============================================
@echo … and then turn on the time service back on
net start w32time
@echo =============================================
@echo Tell the time sync service to use the changes
w32tm /config /update
@echo =======================================================
@echo Reset the local computer’s time against the time server
w32tm /resync /force /rediscover
@endlocal & @goto :EOF

Материал из support.qbpro.ru

Скрипт для синхронизации времени в Windows:

net time /setsntp:10.10.5.1
net stop w32time && net start w32time
net w32tm /resync

или

net w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:manual /update

Запуск от имени Администратора:

runas /user:Администратор "cmd /C net time /setsntp:10.10.5.1 && net stop w32time && net start w32time && w32tm /resync"

Изменение времени в CMD

  • Пример скрипта:
runas /user:127.0.0.1\Администратор "cmd /C w32tm /config /syncfromflags:manual /manualpeerlist:pool.ntp.org && w32tm /config /update"

или

echo password|runas /netonly /user:127.0.0.1\Администратор "cmd /A /C
chcp 866>nul
time
net time /setsntp:pool.ntp.org
w32tm /config /syncfromflags:manual /manualpeerlist:pool.ntp.org
net stop w32time && net start w32time
w32tm /config /update
pause "

  • Пример команды если компьютер в домене:
runas /user:127.0.0.1\Администратор "cmd /A /C w32tm /config /syncfromflags:manual /manualpeerlist:pool.ntp.org && w32tm /config /update"
  • Отключение автоматического перехода на летнее/зимнее время» из пользователя с ограниченными правами:
runas /user:127.0.0.1\Администратор "cmd /A /C regedit"

Ищем в реестре:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]

создаем ключ DWORD спараметром «1»:

DisableAutoDaylightTimeSet = 1

Время в командной строке

Пример:

runas /user:127.0.0.1\Администратор "cmd /A /C time 21.45"

Time — задает системное время

Выводит и задает системное время.При использовании без параметров, команад time отображает системное время и предлагает
ввести новое время.
Синтаксис time [/t] [/time] [часы:[минуты[:секунды[.сотые]]][{A|P}]]
Параметры

/t

Выводит на экран текущее системное время без предложения ввода нового.

/time

Такой же как параметр /t.

часы

Задает значение часов. Допустимы величины от 0 до 23.

минуты

Задает значение минут. Допустимы величины от 0 до 59.

секунды

Задает значение секунд. Допустимы величины от 0 до 59.

сотые

Задает значение сотых долей секунды. Допустимы величины от 0 до 99.

{A|P}

Задает время до полудня (A.M.) или после полудня (P.M.) для 12-часового формата времени.
Если указано допустимое 12-ти часовое значение, но не задано значение A или P, команда time использует A (до полудня).

/?

Отображает справку в командной строке.

  • Пример скрипта синхронизации для Windows Server 2008
@echo off
w32tm /config /manualpeerlist:0.pool.ntp.org,0x1 /syncfromflags:MANUAL
net stop w32time
net start w32time
net w32tm /resync

ИСТОЧНИКИ


взято тут

  • Настройка сервера NTP на ОС Windows 10
    • Автоматическая настройка
    • Настройка вручную
  • Настройка синхронизации времени и часового пояса на сервере RLP

Настройка сервера NTP на ОС Windows 10

Для настройки сервера понадобятся права администратора у пользователя Windows.

Автоматическая настройка

  1. Скачайте файл NTP_server_setup.bat
  2. Нажмите на файл правой кнопкой мыши и в меню выберите Запуск от имени администратора. Если Windows запросит разрешения на внесение изменений приложением, нажмите кнопку Да.

  3. Подождите, пока скрипт настроит сервер NTP. Последняя команда скрипта выводит текущую конфигурацию службы времени. Если скрипт успешно настроил сервер NTP, то в разделе NtpServer опция Enabled будет выставлена в 1. Нажмите любую клавишу, чтобы завершить работу скрипта и закрыть окно командной строки.

Настройка вручную

  1. Зайдите в редактор реестра одним из способов:
    • Нажмите клавиши Win+R, в появившемся окне Выполнить наберите regedit и нажмите Enter.

    • В строке поиска Windows наберите regedit и выберите найденное приложение Редактор реестра.

      Если Windows запросит разрешения на внесение изменений приложением Редактор реестра, нажмите кнопку Да.

  2. В Редакторе реестра перейдите по пути \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
    Для этого можно воспользоваться деревом в левой части окна или скопировать и добавить строку пути в поле в верхней части окна.

  3. Откройте окно изменения параметра Enabled двойным щелчком мыши по нему в правой части окна Редактора реестра. Измените значение параметра на 1 и нажмите кнопку ОК.

  4. В Редакторе реестра перейдите по пути \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config



  5. Измените значение параметра AnnounceFlags на 5.

  6. Закройте Редактор реестра.
  7. Чтобы изменения вступили в силу, необходимо перезапустить службу времени Windows. Зайдите в управление службами одним из способов:
    • Нажмите клавиши Win+R, в появившемся окне Выполнить наберите services.msc и нажмите Enter.

    • В строке поиска Windows наберите службы и выберите найденное приложение Службы.

  8. В списке служб найдите Службу времени Windows.

  9. Дважды щёлкните на службу, чтобы зайти в окно её настройки.
    Если служба в состоянии Остановлена, то нажмите кнопку Запустить и дождитесь запуска службы.
    Если служба в состоянии Выполняется, сначала нажмите кнопку Остановить, дождитесь остановки службы, нажмите кнопку Запустить и дождитесь запуска службы.
    Установите Тип запуска в Автоматически и нажмите кнопку ОК, чтобы сохранить настройку.

  10. Закройте окно Служб Windows.
  11. Для проверки, что сервер NTP запустился, можно использовать команду w32time командной строки Windows.
    Запустите командную строку Windows одним из способов:
    • Нажмите клавиши Win+R, в появившемся окне Выполнить наберите cmd и нажмите Enter.

    • В строке поиска Windows наберите cmd и выберите найденное приложение Командная строка.

  12. В Командной строке наберите или скопируйте сочетанием клавиш Shift+Insert строку w32tm /query /configuration и нажмите клавишу Enter.

  13. Команда выведет текущую конфигурацию службы времени. Если сервер NTP запущен, то в разделе NtpServer опция Enabled будет выставлена в 1. Закройте окно Командной строки.

  14. Для работы сервера NTP нужно разрешить в Брандмауэре Windows UDP траффик по порту 123. Откройте Монитор брандмауэра Защитника Windows в режиме повышенной безопасности одним из способов:
    • Нажмите клавиши Win+R, в появившемся окне Выполнить наберите wf.msc и нажмите Enter.

    • В строке поиска Windows наберите  и выберите найденное приложение.

  15. В окне Монитора брандмауэра… переключитесь на Правила для входящих подключений и нажмите на Создать правило…

  16. Выберите тип правила Для порта и нажмите кнопку Далее.

  17. Выберите Протокол UDP, впишите номер порта 123 и нажмите кнопку Далее.

  18. Выберите Разрешить подключение и нажмите кнопку Далее.

  19. Установите галочки для всех профилей и нажмите кнопку Далее.

  20. Введите имя правила, например, udp in 123 и нажмите кнопку Готово.

  21. Переключитесь на Правила для исходящего подключения и нажмите Создать правило. Создайте правило с такими же настройками (тип правила, протокол и порты и т.д.), как и в предыдущих пунктах.

  22. Закройте окно Монитора брандмауэра…

Настройка синхронизации времени и часового пояса на сервере RLP

Для копирования файлов по сети из ОС Windows можно использовать WinSCP.

Команды можно вводить как локально на сервере, так и удалённо по SSH. Для удалённого подключения можно использовать PuTTY.

Данные для подключения по умолчанию:
Логин: root
Пароль: root (при наборе пароля он может не отображаться, даже символами «звёздочка»)

  1. Скачайте и разархивируйте ntp_local_install.zip
  2. Скопируйте получившуюся папку ntp_local_install в папку home на сервере RLP.
  3. Зайдите на сервер локально или удалённо.
  4. Остановите службу TRASSIR командой:
    systemctl stop t1daemon
  5. Установите rpm из скопированной папки командой:
    yum install -y /home/ntp_local_install/*.rpm
  6. Зайдите в редактирование файла настроек планировщика задач командой:
    crontab -e
  7. Нажмите клавишу Insert для перехода в режим редактирования.
    Добавьте строку */5 * * * * sudo ntpdate IP-адрес компьютера на Windows с настроенным NTP-сервером
    Пример: */5 * * * * sudo ntpdate 192.168.1.1
  8. Нажмите клавишу Esc, чтобы выйти из режима редактирования. Введите :wq! и нажмите клавишу Enter, чтобы сохранить изменения и выйти из редактора.
  9. Проверьте текущий часовой пояс на сервере RLP командой
    timedatectl status
    Часовой пояс и город указаны в разделе Time zone:

  10. Если часовой пояс на сервере не совпадает с часовым поясом, где физически размещён сервер, то его можно поменять:
    1. Выведите список городов, поддерживаемых службой времени и выберите ближайший:
      Для списка городов Европы введите команду: timedatectl list-timezones | grep Europe
      Для списка городов Азии введите команду: timedatectl list-timezones | grep Asia
    2. Установите нужный часовой пояс командой: timedatectl set-timezone выбранный город
      Пример: timedatectl set-timezone Asia/Vladivostok

      Город нужно указать в том же виде, в котором он выводится командой timedatectl list-timezones, включая регистр букв. Если указать город неправильно, часовой пояс не изменится.

  11. Проверьте текущее время на сервере RLP командой:
    date

    Время должно совпадать со временем на компьютере с настроенным NTP-сервером. Если время не совпадает, то подождите пять минут (настроенный период синхронизации) и введите команду ещё раз.

Запустите TRASSIR командой:
systemctl start t1daemon

удобный скрипт для работы со временем на серверах NTP доступен по ссылке:

https://ncloud.dssl.ru/s/HpQrdWMBLet7Wps


Рейтинг 4.56/163:

2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 187

Синхронизация времени с корректировкой

03.05.2017, 16:53. Показов 32019. Ответов 22


Здравствуйте сам я в программировании профан, но реалии жизни вынуждают. Вот решил обратиться к специалистам.
Суть моей проблемы в следующем: как с помощью (CMD/BAT) синхронизировать системное время на компьютере с сервером ntp21.vniiftri.ru (89.109.251.21) и прибавить к нему 5 секунд после синхронизации (5 секунд это для примера, нужно будет подбирать данный параметр опытным путём)? Корректировка не будет превышать 10 секунд.



0



Garry Galler

5437 / 3859 / 1215

Регистрация: 28.10.2013

Сообщений: 9,552

Записей в блоге: 1

04.05.2017, 00:49

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
@echo off
::<------------------------------------->
:: COPYRIGTH(C) Garry Galler, 2017
:: change_time: смена системного времени посредством указания смещения в секундах от текущего
:: NB!: скрипт не учитывает переход нового времени за границы 23:59:59
:: в этом случае time просто выдаст ошибку
:: батник сохранить в кодировке OEM866
:: Для восстановления правильного времени просто не указывайте offset
::<------------------------------------->
set server=ntp2.stratum2.ru                    & :: сервер для синхронизации
::>nul net stop w32time                          & :: остановка службы времени, чтобы после реконфигурации она подтянула новые параметры
>nul w32tm /config /manualpeerlist:%server%    & :: конфигурация синхронизации
>nul w32tm /config /syncfromflags:manual       & :: ручной режим - не знаю нужно ли
::2>w32tm  /config /largephaseoffset:0         & :: конфигурация максимально допустимого отставания в мск
2>nul net start w32time                        & :: запуск службы времени с новыми параметрами 
>nul  w32tm /config /update                    & :: для смены параметров без остановки службы времени
w32tm /resync                                  & :: синхронизация с указанным сервером
echo ============================
echo сервер синхронизации:
w32tm /query /source
echo ============================
 
set /p offset=[ENTER the offset in seconds]:
if "%offset%"=="" (set /a offset=0)
 
echo ============================
echo ТЕКУЩЕЕ ВРЕМЯ:%time%
echo ============================
set now=%time: =0%
for /f "tokens=1-3 delims=/-:., " %%a in ( "%now%" ) do (
    set hours=%%a   & rem часы
    set minutes=%%b & rem минуты
    set seconds=%%c & rem секунды
)
 
set /a all_seconds= (hours*3600) + (minutes*60) + seconds
echo (%hours% * 3600) + (%minutes% * 60) + %seconds% = %all_seconds%
set /a new_seconds=all_seconds + offset
echo %all_seconds% + %offset% = %new_seconds%
 
set /a seconds = %new_seconds%
set /a hours = seconds/3600 
set /a minutes = (seconds - (hours*3600))/60
set /a seconds = (seconds - (hours*3600) - (minutes*60))
 
set new_time=%hours%:%minutes%:%seconds%
echo ============================
echo НОВОЕ ВРЕМЯ: %new_time%
echo ============================
echo time before: %time%
echo time new:    %new_time%
time %new_time%
echo time after:  %time%
pause&exit /b

——————————
Updated.
Изменил блок синхронизации. Чтобы новый сервер подтягивался службой времени ее нужно либо останавливать и после реконфигурации перезапускать, либо использовать параметр /update в w32tm.



2



2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 187

04.05.2017, 07:59

 [ТС]

Спасибо, всё работает как нужно. С некоторыми параметрами (служб) поэкспериментирую.

Добавлено через 3 часа 59 минут
А как добавить не целые секунды, а с десятыми долями?



0



5437 / 3859 / 1215

Регистрация: 28.10.2013

Сообщений: 9,552

Записей в блоге: 1

04.05.2017, 10:35

Сообщение от lapin9126

как добавить не целые секунды, а с десятыми долями?

Просто добавить доли не получится — cmd работает только с целыми числами.
Поэтому нужно формулу расчета времени переводить на миллисекунды — тогда и итоговое время будет с миллисекундами.
Немного попозже попробую перевести.



0



2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 187

04.05.2017, 10:42

 [ТС]

Заранее благодарен вам за оказанную помощь. Без вас я бы ни за что не не осилил этот вопрос. Если в VBA хоть что-то понятно, то в (CMD/BAT) для меня просто набор знаков



0



Garry Galler

5437 / 3859 / 1215

Регистрация: 28.10.2013

Сообщений: 9,552

Записей в блоге: 1

04.05.2017, 10:51

В принципе, если вам точный перевод времени не нужен — достаточно просто к итоговой строке времени

Windows Batch file
1
set new_time=%hours%:%minutes%:%seconds%

добавить нужное число миллисекунд

Windows Batch file
1
set new_time=%hours%:%minutes%:%seconds%,25   :: 25 миллисекунд



1



lapin9126

2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 187

04.05.2017, 11:27

 [ТС]

Спасибо, всё гениальное-просто!!!!!!

Добавлено через 22 минуты
Для корректного суммирования поменял параметр

Windows Batch file
1
set now=%time: =0%

на

Windows Batch file
1
set now=%time%



0



Garry Galler

5437 / 3859 / 1215

Регистрация: 28.10.2013

Сообщений: 9,552

Записей в блоге: 1

04.05.2017, 12:21

Сообщение от lapin9126

Для корректного суммирования поменял параметр

А вот здесь я не понял :-) Здесь делается замена возможного пробела в числах на 0 (пробел вместо ведущего ноля может появляться во времени до 10 утра).
————————————
Формулу на миллисекунды на перевел, однако подстановка результата дает странный эффект:
Ввожу 1500 миллисекунд.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
============================
[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
Windows Batch file
1
2
3
4
5
6
7
set /a milliseconds = %new_milliseconds%
set /a hours=milliseconds/3600000 
set /a minutes=(milliseconds - (hours*3600*1000))/60/1000
set /a seconds=(milliseconds - (hours*3600*1000) - (minutes*60*1000))/1000
set /a milliseconds=milliseconds - (hours*3600*1000) - (minutes*60*1000) - seconds*1000
 
set new_time=%hours%:%minutes%:%seconds%,%milliseconds:~0,2%

Формула переводит все в миллисекунды, суммирует и конвертирует обратно в часы\минуты\секунды\миллисекунды. И вроде все делает правильно.
Новое время должно быть 12:3:0,57, однако time делает из 57 сотых => 5 сотых. И так постоянно.
Где тут косяк :-)?



0



Любознательный

6965 / 2118 / 348

Регистрация: 10.03.2016

Сообщений: 4,897

04.05.2017, 12:30

Garry Galler,

Сообщение от Garry Galler

Где тут косяк :-)?

Возможно, не причина, но тем не менее…на первый взгляд:

Сообщение от Garry Galler

(12 * 3600 * 1000)

Вот здесь, какие-такие единицы мы получим?
ч*мин*мсек



0



5437 / 3859 / 1215

Регистрация: 28.10.2013

Сообщений: 9,552

Записей в блоге: 1

04.05.2017, 13:50

YuS_2,
Ну здесь — (12 * 3600 * 1000) — должно получиться целое число миллисекунд равное 12 часам=43200000.
Разве нет?

Добавлено через 5 минут
А вот с прибавлением

+ 70

похоже косяк. Там же доли: 70 это 0.7, то есть 700 мск.

Добавлено через 44 минуты
А еще косяк, что числа типа 08 и 09 будут cmd забракованы из-за ведущего ноля. Но это понятно как исправить: добавлением единицы и вычитанием 100.



0



Любознательный

6965 / 2118 / 348

Регистрация: 10.03.2016

Сообщений: 4,897

04.05.2017, 13:55

Сообщение от Garry Galler

Разве нет?

Да, верно … это я тут по диагонали, одним глазом форум читаю
3600 равно 60*60, вот где секунды потерялись у меня



0



2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 187

04.05.2017, 14:12

 [ТС]

Это я не вовремя проверял, надо утром с 8 до 10 тестировать.



0



Garry Galler

5437 / 3859 / 1215

Регистрация: 28.10.2013

Сообщений: 9,552

Записей в блоге: 1

04.05.2017, 14:25

lapin9126,
Просто замените в коде цикл на этот:

Windows Batch file
1
2
3
4
5
6
set now=%time: =0%
for /f "tokens=1-3 delims=/-:., " %%a in ( "%now%" ) do (
    set /a hours=1%%a-100        & rem часы
    set /a minutes=1%%b-100      & rem минуты
    set /a seconds=1%%c-100      & rem секунды
)

Здесь ненужные ведущие ноли будут убираться и ошибки не случится.
Миллисекунды добавляйте как вы это делаете сейчас — просто помните, что на самом деле вы добавляете не целое число, а сотые доли от секунды.
———————————-
Что касается формулы перевода в миллисекунды: мне кажется тут бессмысленно бодаться с time — она воспринимает целое число миллисекунд, которое точно высчитывает формула, как сотую долю от секунды — то есть автоматом это число делит на 100, вместо того, чтобы принять то, что ей дают как готовый отформатированный набор чисел.



0



lapin9126

2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 187

04.05.2017, 14:44

 [ТС]

Я правильно понял конечный код должен быть такой:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
@echo off
::<------------------------------------->
:: COPYRIGTH(C) Garry Galler, 2017
:: change_time: смена системного времени посредством указания смещения в секундах от текущего
:: NB!: скрипт не учитывает переход нового времени за границы 23:59:59
:: в этом случае time просто выдаст ошибку
:: батник сохранить в кодировке OEM866
:: Для восстановления правильного времени просто не указывайте offset
::<------------------------------------->
set server=ntp2.stratum2.ru                    & :: сервер для синхронизации
::>nul net stop w32time                          & :: остановка службы времени, чтобы после реконфигурации она подтянула новые параметры
>nul w32tm /config /manualpeerlist:%server%    & :: конфигурация синхронизации
>nul w32tm /config /syncfromflags:manual       & :: ручной режим - не знаю нужно ли
::2>w32tm  /config /largephaseoffset:0         & :: конфигурация максимально допустимого отставания в мск
2>nul net start w32time                        & :: запуск службы времени с новыми параметрами 
>nul  w32tm /config /update                    & :: для смены параметров без остановки службы времени
w32tm /resync                                  & :: синхронизация с указанным сервером
echo ============================
echo сервер синхронизации:
w32tm /query /source
echo ============================
 
set /p offset=[ENTER the offset in seconds]:
if "%offset%"=="" (set /a offset=0)
 
echo ============================
echo ТЕКУЩЕЕ ВРЕМЯ:%time%
echo ============================
set now=%time: =0%
for /f "tokens=1-3 delims=/-:., " %%a in ( "%now%" ) do (
    set /a hours=1%%a-100        & rem часы
    set /a minutes=1%%b-100      & rem минуты
    set /a seconds=1%%c-100      & rem секунды
)
 
set /a all_seconds= (hours*3600) + (minutes*60) + seconds
echo (%hours% * 3600) + (%minutes% * 60) + %seconds% = %all_seconds%
set /a new_seconds=all_seconds + offset
echo %all_seconds% + %offset% = %new_seconds%
 
set /a seconds = %new_seconds%
set /a hours = seconds/3600 
set /a minutes = (seconds - (hours*3600))/60
set /a seconds = (seconds - (hours*3600) - (minutes*60))
 
set new_time=%hours%:%minutes%:%seconds%,25   & :: 25 миллисекунд
echo ============================
echo НОВОЕ ВРЕМЯ: %new_time%
echo ============================
echo time before: %time%
echo time new:    %new_time%
time %new_time%
echo time after:  %time%
pause&exit /b



0



5437 / 3859 / 1215

Регистрация: 28.10.2013

Сообщений: 9,552

Записей в блоге: 1

04.05.2017, 15:24

Да, пока это все что я могу предложить.
P.S. Пробелы в присвоениях переменных —

до и после знака равно

— лучше убрать. Они в батниках как минимум нежелательны, как максимум приводят к ошибкам, хотя при сложении чисел вроде не влияют. Это у меня python code style уже мешает батники правильно писать :-)



0



2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 187

05.05.2017, 04:22

 [ТС]

Хорошо, подправлю. Еще раз благодарю за помощь.

Добавлено через 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



5437 / 3859 / 1215

Регистрация: 28.10.2013

Сообщений: 9,552

Записей в блоге: 1

05.05.2017, 15:10

lapin9126,

Откуда у вас ведущий ноль, если батник его исключает операций вычитания 108 — 100=8?



0



lapin9126

2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 187

05.05.2017, 15:47

 [ТС]

Да кто его знает. Может в коде что-то не так. Спасибо за помощь. Пытаюсь на VBS написать.

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
@echo off
::<------------------------------------->
:: COPYRIGTH(C) Garry Galler, 2017
:: change_time: смена системного времени посредством указания смещения в секундах от текущего
:: NB!: скрипт не учитывает переход нового времени за границы 23:59:59
:: в этом случае time просто выдаст ошибку
:: батник сохранить в кодировке OEM866
:: Для восстановления правильного времени просто не указывайте offset
::<------------------------------------->
::set offset=6                                   & :: секунды коррекции после подбора
set server=ntp2.stratum2.ru                    & :: сервер для синхронизации
::>nul net stop w32time                        & :: остановка службы времени, чтобы после реконфигурации она подтянула новые параметры
>nul w32tm /config /manualpeerlist:%server%    & :: конфигурация синхронизации
>nul w32tm /config /syncfromflags:manual       & :: ручной режим - не знаю нужно ли
::2>w32tm  /config /largephaseoffset:0         & :: конфигурация максимально допустимого отставания в мск
2>nul net start w32time                        & :: запуск службы времени с новыми параметрами 
>nul  w32tm /config /update                    & :: для смены параметров без остановки службы времени
w32tm /resync                                  & :: синхронизация с указанным сервером
echo ============================
echo сервер синхронизации:
w32tm /query /source
echo ============================
 
set /p offset=[ENTER the offset in seconds]: & :: секунды коррекции методом подбора
if "%offset%"=="" (set /a offset=0)
 
echo ============================
echo ТЕКУЩЕЕ ВРЕМЯ:%time%
echo ============================
set now=%time: =0%
for /f "tokens=1-3 delims=/-:., " %%a in ( "%now%" ) do (
    set hours=%%a   & rem часы
    set minutes=%%b & rem минуты
    set seconds=%%c & rem секунды
)
 
set /a all_seconds=(hours*3600) + (minutes*60) + seconds
echo (%hours% * 3600) + (%minutes% * 60) + %seconds% = %all_seconds%
set /a new_seconds=all_seconds + %offset%
echo %all_seconds% + %offset% = %new_seconds%
 
set /a seconds=%new_seconds%
set /a hours=seconds/3600 
set /a minutes=(seconds - (hours*3600))/60
set /a seconds=(seconds - (hours*3600) - (minutes*60))
 
set new_time=%hours%:%minutes%:%seconds%
echo ============================
echo НОВОЕ ВРЕМЯ: %new_time%
echo ============================
echo time before: %time%
echo time new:    %new_time%
time %new_time%
echo time after:  %time%
pause&exit /b



0



5437 / 3859 / 1215

Регистрация: 28.10.2013

Сообщений: 9,552

Записей в блоге: 1

05.05.2017, 15:59

lapin9126,
Ну вы же используете

первую версию кода

, которая не содержит исправления ошибки ведущего нуля.
Вот в этом посте вы же сами прикрепили

правильную версию кода

, в которую внесены мои поправки переменных. И эту версию вы почему-то НЕ используете…



0



2 / 2 / 0

Регистрация: 19.10.2015

Сообщений: 187

05.05.2017, 16:17

 [ТС]

Прошу прощения, с утра наверно еще не проснулся и не то скопировал.



0



BasicMan

Эксперт

29316 / 5623 / 2384

Регистрация: 17.02.2009

Сообщений: 30,364

Блог

05.05.2017, 16:17

20

Новые блоги и статьи

Все статьи  

Все блоги / 

POCO, ACE, Loki и другие продвинутые C++ библиотеки

NullReferenced 13.05.2025

В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .

Паттерны проектирования GoF на C#

UnmanagedCoder 13.05.2025

Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .

Создаем CLI приложение на Python с Prompt Toolkit

py-thonny 13.05.2025

Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .

Конвейеры ETL с Apache Airflow и Python

AI_Generated 13.05.2025

ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .

Выполнение асинхронных задач в Python с asyncio

py-thonny 12.05.2025

Современный мир программирования похож на оживлённый мегаполис – тысячи процессов одновременно требуют внимания, ресурсов и времени. В этих джунглях операций возникают ситуации, когда программа. . .

Работа с gRPC сервисами на C#

UnmanagedCoder 12.05.2025

gRPC (Google Remote Procedure Call) — открытый высокопроизводительный RPC-фреймворк, изначально разработанный компанией Google. Он отличается от традиционых REST-сервисов как минимум тем, что. . .

CQRS (Command Query Responsibility Segregation) на Java

Javaican 12.05.2025

CQRS — Command Query Responsibility Segregation, или разделение ответственности команд и запросов. Суть этого архитектурного паттерна проста: операции чтения данных (запросы) отделяются от операций. . .

Шаблоны и приёмы реализации DDD на C#

stackOverflow 12.05.2025

Когда я впервые погрузился в мир Domain-Driven Design, мне показалось, что это очередная модная методология, которая скоро канет в лету. Однако годы практики убедили меня в обратном. DDD — не просто. . .

Исследование рантаймов контейнеров Docker, containerd и rkt

Mr. Docker 11.05.2025

Когда мы говорим о контейнерных рантаймах, мы обсуждаем программные компоненты, отвечающие за исполнение контейнеризованных приложений. Это тот слой, который берет образ контейнера и превращает его в. . .

Micronaut и GraalVM — будущее микросервисов на Java?

Javaican 11.05.2025

Облачные вычисления безжалостно обнажили ахиллесову пяту Java — прожорливость к ресурсам и медлительный старт приложений. Традиционные фреймворки, годами радовавшие корпоративных разработчиков своей. . .

Наверх

Ручная синхронизация времени

net stop w32time
w32tm /config /syncfromflags:manual /manualpeerlist:"0.it.pool.ntp.org 1.it.pool.ntp.org 2.it.pool.ntp.org 3.it.pool.ntp.org"
net start w32time
w32tm /config /update
w32tm /resync /rediscover

Готовый BAT-файл: time-sync.zip [242 b] (cкачиваний: 400)

Запускал через командную строку (Dos) на WinXP (x32) SP3 и Win7 (x64) SP1 — всё работает!

*

NTP Servers (серверы точного времени): www.ntp-servers.net

* * *

Настройка сети через командную строку и BAT файл: ravensblade.ru

* * *

Отключаем проверку цифровой подписи драйверов в Windows 7

В меню политик перейдите в раздел:
User Configuration -> Administrative Templates -> System -> Driver Installation
В правой панели найдите пункт ‘Code Signing for Device Drivers’ и дважды щелкните по нему
В появившемся окне выберите ‘Enabled’, а в нижнем меню — ‘Ignore’. Нажмите Ок и перезагрузите компьютер. После перезагрузи и применения политика, в своей Windows 7 вы полностью отключите подписывание драйверов, и сможете установить любые, в том числе, неподписанные драйвера

*

bcdedit.exe /set loadoptions DISABLE_INTEGRITY_CHECKS

bcdedit.exe /set TESTSIGNING ON

© winitpro.ru (08.05.14)

* * *

Проверка файлов Windows 7
cmd — от имени Администратора
sfc /scannow

Запуск средства проверки системных файлов (microsoft.com): support.microsoft.com

* * *

Три десятилетия Windows — История Windows: от 1.0 до 10: www.gazeta.ru (20.11.2015)

* * *

Упрощение анализа дампов памяти windows: geektimes.ru (10.01.18)

_

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows copy file cmd windows
  • 0x80070490 windows 7 как исправить intel
  • Windows movie maker essentials 2012
  • Как сделать фото с ноутбука windows 7 с встроенной камеры
  • Windows update wsus regedit