Board logo

标题: [日期时间] 写了一个修改日期的批处理,如果需要用会批处理同步回网络时间,怎么写呢 [打印本页]

作者: q995855    时间: 5 天前 09:41     标题: 写了一个修改日期的批处理,如果需要用会批处理同步回网络时间,怎么写呢

假设我修改时钟退回任意时间日期,在没自动恢复时(可以没写自动回调记录),怎么写一个批处理来快速同步回去正确时间,大概用来好些方法都不能同步到时间恢复正确日期,只能通过手动开关自动更新时间设置。以下是尝试过的方法:
@echo off
:: 检查是否以管理员身份运行
net session >nul 2>&1
if %errorLevel% == 0 (
    echo 脚本已以管理员身份运行。
    goto :main
) else (
    echo 脚本需要以管理员身份运行。
    echo 正在重新启动脚本以获取管理员权限...
    powershell -Command "Start-Process cmd -ArgumentList '/c %~f0' -Verb runAs"
    exit
)

:main
:: 停止并重新启动 Windows 时间服务
net stop w32time
net start w32time

:: 配置时间同步服务器
w32tm /config /manualpeerlist:"time.nist.gov" /syncfromflags:manual /reliable:yes /update
w32tm /resync
w32tm /resync

:: 切换到另一个时间同步服务器
w32tm /config /manualpeerlist:"time.windows.com" /syncfromflags:manual /reliable:yes /update
w32tm /resync
w32tm /resync

echo 时间同步完成!
pause
作者: ygqiang    时间: 5 天前 21:05

回复 1# q995855
  1. @echo off
  2. set year=2021
  3. set day=/11/10
  4. set tim=23:59:55
  5. echo %day%
  6. date %year%%day%
  7. time %tim%
  8. echo %date%-%time%
  9. pause
  10. w32tm /unregister
  11. net stop w32time
  12. w32tm /register
  13. net start w32time
  14. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxNegPhaseCorrection /t reg_dword /d 999999999 /f
  15. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxPosPhaseCorrection /t reg_dword /d 999999999 /f
  16. net stop w32time
  17. net start w32time
  18. w32tm /resync
  19. w32tm /resync
复制代码

作者: q995855    时间: 5 天前 23:34

回复  q995855
ygqiang 发表于 2025-1-3 21:05

感谢大佬指点,还有一个问题,如果是没网情况下会同步失败,能读取到最新的一个时间来修正系统日期的吗?批处理能不能做到这个的
作者: ygqiang    时间: 3 天前 07:32

回复 3# q995855


    没网就不知道怎么处理了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2