|
|
楼主 |
发表于 2026-1-23 09:46:27
|
显示全部楼层
内部服务端,有外网时可开机校对一次时间- @echo off
- ::网络通则时间同步,不通则延时再检查。
- set "cn=0"
- set sync_flag=
- set/a ct=%random%%%4+5
- ::检测网络通断。成功%errorlevel%=0,失败1
- :chk_Net_status
- if "%cn%" gtr "%ct%" goto :eof
- echo 检查网络
- ping -n 1 -w 200 baidu.com&&call :SYNC_TIME||call :delay_qm
- if "%sync_flag%"=="1" goto :eof
- goto :chk_Net_status
- ::延时15秒
- :delay_qm
- echo 网络不通……
- timeout /t 15 /nobreak
- set/acn+=1
- goto :eof
- ::外部时间源(域名/IP)
- w32tm /monitor /computers:ntp.aliyun.com
- w32tm /config /syncfromflags:manual /manualpeerlist:"time.edu.cn" /update
- ::强制同步时间。成功err=0
- :SYNC_TIME
- echo 网络通
- echo 同步时间
- w32tm /resync /force
- set "sync_flag=1"
- goto :eof
复制代码 拖入下面图标加入开机启动- ::拖入添加开机启动.BAT
- @echo off
- if "%~1"=="" goto :eof
- ::检查
- set HKLM_Run="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
- set HKCU_Run="HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
- reg query %HKLM_Run%|find /i "_s$Time$"&&set _run_sTime=1
- reg query %HKCU_Run%|find /i "_s$Time$"&&set _run_sTime=1
- ::存入目录
- set "PF=D:\Program Files"
- if not exist "%PF%\" md "%PF%"
- set "stFile=%PF%\同步时间_服务器.BAT"
- if not exist "%PF%\" md "%PF%"
- if not exist "%stFile%" copy/b/y "%~1" "%stFile%"
- ::添加注册表启动项
- if not "%_run_sTime%"=="1" (%_没有注册表启动项时才添加_%
- reg add %HKCU_Run% /v _s$Time$ /d "%stFile%" /f
- )
- ::删除reg delete %HKCU_Run% /v _s$Time$ /f
复制代码 |
|