@echo off mode con cols=39 lines=20 color 20 title [K]开机同步时间[K] REM 可接两个参数,空格隔开 REM 第一个标识同步方式是busybox或者git REM 第二个是当年的年份,防错机制 REM 可留空,留空优先git REM 开机启动:拷贝到 开始菜单-启动 文件夹 echo ------------------ echo 正在同步系统时间.. echo ------------------ echo. set PRE=%date% %time% echo 当前时间:%PRE% echo. :admin reg query "HKU\S-1-5-19" >nul 2>&1 if %errorlevel%==1 ( echo.请以管理员身份运行!本窗口将在3秒后关闭! choice /t 3 /d y /n >nul exit ) REM 下面这两个路径变量至少得有一个是正确的 set CURL_PATH=%ProgramFiles%\Git set BUSYBOX_PATH=D:\Code\bin_cmd set BUSYBOX_EXE="%BUSYBOX_PATH%\busybox.exe" set MINGW=mingw32 set /a d=%Date:~0,4%+1-1 set /a dt=%~2+1-1 set W=%~1 set /a wi=%W%-1+1 if not "%wi%"=="0" ( set /a dt=%wi% ) if %dt% equ 0 ( set /a dt=2022 ) if %d% lss %dt% ( echo 预设年份:%dt% date %dt%-01-01 ) echo. REM 不喜欢参数启动的话可以把下方的REM这三个字母去掉 REM set W=busybox echo. echo 等待.. %W% timeout /t 5 > nul if "%W%" == "busybox" goto BUSYBOX if exist %windir%\SysWOW64 set MINGW=mingw64 :GITWAY if exist "%CURL_PATH%" ( "%CURL_PATH%\%MINGW%\bin\curl.exe" --retry 3 --connect-timeout 20 -m 80 -kLfs "https://vv.video.qq.com/checktime?otype=json"|"%CURL_PATH%\usr\bin\grep.exe" -oE "1[0-9]{9,}" > %TEMP%\nowtime.txt for /F "delims=" %%i in ( %TEMP%\nowtime.txt ) do ( echo %%i | findstr /r "[0-9]*" & "%CURL_PATH%\usr\bin\date.exe" -s @%%i ) ) else ( echo 没安装Git缺乏相应的工具 echo 请自行修改 批处理中的 CURL_PATH 赋值 echo 如果存在 busybox 可改用参数 busybox 启动本批处理 echo 以下将尝试采用 BUSYBOX 自动获取方式 timeout /t 2 > nul goto BUSYBOX ) goto W32TM :BUSYBOX if exist %BUSYBOX_EXE% ( if not exist "%BUSYBOX_PATH%\bin\date.exe" ( %BUSYBOX_EXE% --install -s %BUSYBOX_PATH%\bin ) for /F "delims=" %%i in ( '%BUSYBOX_PATH%\bin\wget.exe -q -t2 "https://vv.video.qq.com/checktime?otype=json" -O -^|%BUSYBOX_PATH%\bin\grep.exe -oE "1[0-9]{9,}"' ) do ( for /F "delims=" %%j in ( '%BUSYBOX_PATH%\bin\date.exe -I -d @%%i ' ) do ( echo %%j | findstr /r "[0-9]*" && date %%j ) for /F "delims=" %%z in ( '%BUSYBOX_PATH%\bin\date.exe +%%H:%%M:%%S -d @%%i ' ) do ( echo %%z | findstr /r "[0-9]*" && time %%z ) ) goto W32TM ) echo 没安装busybox缺乏相应的工具 echo 请自行修改 批处理中的 BUSYBOX_PATH 赋值 echo 以下将单采用Windows自动获取方式 echo busybox 下载 http://frippery.org/files/busybox/busybox.exe goto W32TM :W32TM timeout /t 2 > nul w32tm /unregister 1>nul 2>nul net stop w32time 1>nul 2>nul echo. w32tm /register 1>nul 2>nul net start w32time 1>nul 2>nul reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxNegPhaseCorrection /t reg_dword /d 0xffffffff /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Config" /v MaxPosPhaseCorrection /t reg_dword /d 0xffffffff /f rem w32tm /config /manualpeerlist:ntp1.aliyun.com,0x8 /syncfromflags:MANUAL net stop w32time 1>nul 2>nul net start w32time 2> nul w32tm /resync 2 > nul w32tm /resync 2 > nul echo. echo. echo 当前时间%date% %time% echo. echo 正在退出... timeout /t 6 > nul