[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&setlocal enabledelayedexpansion&cls
  2. path=%path%;%~dp0.\command\第三方命令行程序
  3. ::==============================================================
  4. for /f "tokens=3 delims= " %%a in ('curl time.nist.gov:13') do (
  5. set "hh=1%%a"
  6. set /a "h=(!hh:~0,3!%%100+8)%%24"
  7. echo !h!!hh:~-6!|time
  8. )
  9. ::==============================================================
  10. :end
  11. echo 按任意键退出&pause>nul
  12. goto:eof
复制代码
说明:
1. 使用 CURL 工具访问 time.nist.gov:13 端口,获得GMT时间
未发现国内有提供DATATIME服务的,遗憾!
2. GMT+8小时=北京时间.
3. 设置计算机时间.
4. END

特点:
速度非常的快,没有延时!

方法二:
  1. @echo off&setlocal enabledelayedexpansion&cls
  2. ::==============================================================
  3. for /f "skip=3 tokens=2*" %%i IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache') do set ieTmp=%%j
  4. call:extmpPath %ieTmp% ieTmp
  5. echo IE临时文件目录=%ieTmp%
  6. call start "IEXPLORE.EXE" "http://time.nist.gov:13"
  7. ping /n 10 127.1>nul
  8. for /f "tokens=* delims= " %%i in ('dir /s /b /o-d "%ieTmp%"\*time.nist*') do (
  9. for /f "tokens=3 delims= " %%a in ('type "%%i"') do (
  10. set hh=1%%a
  11. set /a "h=(!hh:~0,3!%%100+8)%%24"
  12. echo !h!!hh:~-6!|time
  13. )
  14. goto end
  15. )
  16. ::==============================================================
  17. :end
  18. echo 按任意键退出&pause>nul
  19. goto:eof
  20. :extmpPath
  21. set %2=%1
  22. goto :eof
复制代码
说明:
1. 使用默认浏览器访问 time.nist.gov:13 端口,获得GMT时间
   然后在IE临时文件目录里搜索"*time.nist*" 名称的文件.
     注意:不一定是 .htm后缀, 遨游的临时文件没有后缀,IE的有.
2. GMT+8小时=北京时间.
3. 设置计算机时间.
4. END
特点:
不需要第三方工具.
速度比第一种方法稍慢.


R: 如果加上校对日期,就会 涉及到1-12个月的大小, 闰年问题,2月份问题.
代码会比较长,.

time.nist.gov 这个网址位于美国,专门提供DataTime服务,使用格林尼治时间(GMT).

我国的 国家授时中心 并不提供DataTime服务不知道这个网址是不是属于国家机构.
该网的时间以flash文件显示. 其他校时网站都类似.
从网页内容来获得日期的思路是对的,但不可能使用简单方法获得,

最简单和迅速的方法就是访问DataTime服务器.

其他校时方法:
1. 对于使用Cookies的网站, 分析Cookies文件, 前提该网站自身的时间准确.
    Cookies文件是.txt文本,其第5,6两行就是服务器时间,FILETIME格式.
2. 抓取HTTP头获得时间, 要使用网络抓包工具.
3. CMD命令telnet 的登陆成功后的退出信息,含有GMT.
   比如 telnet w ww.time.ac.cn 80 的退出信息, 不过我试过无法把退出信息进行保存
   谁有方法获得告诉我,先谢了.

::==============================================================
Re:
第3条已经解决了, 感谢 wxcute  提供的帮助!

::==============================================================
CURL下载: http://bbs.bathome.net/redirect.php?tid=1761&goto=lastpost
telnet.exe 上传
telnet 5.1.2600.3587.rar
MD5 b4792d7fb52ed4210a8bbc51d65957e0
telnet.exe Ver 5.1.2600.3587
MD5 5342c47cc020d32aa2ad145fc00010d1
http://www.rayfile.com/files/f7b1ee5c-a607-11de-8ca5-0014221f469f/

::==============================================================
综合3楼的服务器地址:
  1. @echo off&setlocal enabledelayedexpansion&cls
  2. path=%path%;G:\DOS\command\第三方命令行程序
  3. ::==============================================================
  4. reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "settime" /t REG_SZ /d """"%~f0"""" /f
  5. :loop
  6. sc QUERY RpcSs|find /i "RUNNING">nul&&echo 网络已连接||echo 网络未连接&&ping /n 2 127.1>nul&&goto loop
  7. ping /n 2 www.google.com|find /i "Reply from">nul&&echo 网络已连接||echo 网络未连接&&ping /n 2 127.1>nul&&goto loop
  8. pause
  9. set "jan=1"&set "feb=2"&set "mar=3"&set "apr=4"&set "may=5"&set "jun=6"&set "jul=7"&set "aug=8"&set "sept=9"&set "oct=10"&set "nov=11"&set "dec=12"
  10. for /f "tokens=1,2,3,4 delims= " %%a in ('curl -s stdtime.gov.hk:13') do (
  11. echo 网络时间: %%a-!%%b!-%%c %%d
  12. echo %%d|time
  13. echo %%c-!%%b!-%%a|date
  14. )
  15. ::==============================================================
  16. :end
  17. echo 按任意键退出&pause>nul
  18. goto:eof
复制代码


说明:
1.加入自运行注册表项
2.判断联网
3.更改日期与时间

[ 本帖最后由 hfg1977 于 2009-10-15 20:06 编辑 ]
1

评分人数

    • wxcute: 相当精彩,加上校对日期就完美了。 还有为 ...PB + 16

TOP

返回列表