[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]本机同步网络日期时间的vbs代码,以前可用。现在出现错误提示。求解决。

本帖最后由 pcl_test 于 2017-3-20 14:24 编辑

[已解决]网络时间同步vbs代码,以前可用。现在出现错误提示。求解决。谢谢

错误提示如下。
getTime.vbs(6,1)vbscript运行时错误:类型不匹配:‘s’
  1. @echo off&setlocal enabledelayedexpansion
  2. ping 127.0.0.1 -n 2 >nul 2>nul
  3. title 获取网络时间,同步到本机(需联网)
  4. cd /d "%tmp%"
  5. (
  6.     echo With CreateObject("Microsoft.XMLHTTP"^)
  7.     echo    .open "GET", "http://time.tianqi.com/", False
  8.     echo    .send
  9.     echo    s = Split(Split(.responseText, "new Date(("^)(1^), "+"^)(0^)
  10.     echo End With
  11.     echo WSH.Echo DateAdd("s", s * 1, "1970-1-1 8:00"^)
  12. )>getTime.vbs
  13. ——————————————————————————
  14. cls
  15. for /l %%m in (1,1,180) do (
  16. ping 127.0.0.1 -n 2 >nul 2>nul
  17. ping time.tianqi.com -n 1 >nul 2>nul
  18. echo !errorlevel!
  19. if !errorlevel! equ 0 goto :neta
  20. echo 外网不通
  21. )
  22. echo 外网不通,持续30分钟
  23. exit
  24. :neta
  25. echo 外网通,同步本机时间
  26. pause
  27. for /f "tokens=1*" %%i in ('cscript //nologo gettime.vbs') do date %%i & time %%j
  28. echo 本机系统时间设置完成!
  29. pause
  30. exit
复制代码
getTime.vbs代码如下:
  1. With CreateObject("Microsoft.XMLHTTP")
  2.    .open "GET", "http://time.tianqi.com/", False
  3.    .send
  4.    s = Split(Split(.responseText, "new Date((")(1), "+")(0)
  5. End With
  6. WSH.Echo DateAdd("s", s * 1, "1970-1-1 8:00")
复制代码

回复 6# yu2n


    win7 64系统。修改系统日期和时间。
运行你的这个bat,无效果。

TOP

本帖最后由 ygqiang 于 2017-2-11 17:32 编辑

回复 6# yu2n

w32tm /unregister
w32tm /register

先后运行上面2个命令,6楼bat命令可用了。但是:


win7 64系统,本地时间修改了,本地日期也修改为2016/12/1
运行到下面命令,提示:此计算机没有重新同步,因为要求的时间更改太大。
w32tm /resync /rediscover

TOP

回复 11# yu2n


    WScript.Echo("提示:设置成功。当前时间:" + new Date(DateTime.GetVarDate()).toLocaleString());

你好,能否修改设置为:不弹出任何设置“成功”或“不成功”的窗口提示。

TOP

回复 14# yu2n


    多谢。。

WScript.Echo("提示:设置成功。当前时间:" + new Date(DateTime.GetVarDate()).toLocaleString());


这一行,全删除。没效果啊。不弹出窗口提示了,但也不能同步了。

TOP

回复 16# yu2n


    非常感谢。

TOP

本帖最后由 ygqiang 于 2017-10-16 16:13 编辑
  1. /*&cls
  2. @echo off
  3. rem 去掉下句中的echo;方可同步,否则只显示
  4. for /f "tokens=1*" %%i in ('cscript -nologo -e:jscript "%~f0"') do echo;date %%i&echo;time %%j
  5. for /f "tokens=1*" %%i in ('cscript -nologo -e:jscript "%~f0"') do date %%i&time %%j
  6. 1pause&exit
  7. */
  8. function az(n){return n<10?'0'+n:n}
  9. var http = new ActiveXObject('MSXML2.XMLHTTP');
  10. http.open('POST','http://www.114time.com/api/time.php', false)
  11. http.send();
  12. var dt = new Date(http.ResponseText*1);
  13. //减去12个小时上句改为var dt = new Date(http.ResponseText*1-12*3600*1000);
  14. Y = dt.getFullYear();
  15. M = dt.getMonth()+1;
  16. D = dt.getDate();
  17. h = dt.getHours();
  18. m = dt.getMinutes();
  19. s = dt.getSeconds();
  20. WSH.echo(Y+'/'+az(M)+'/'+az(D)+' '+az(h)+':'+az(m)+':'+az(s));
复制代码

TOP

  1. @echo off
  2. (
  3.     echo;With CreateObject("Microsoft.XMLHTTP"^)
  4.     echo;   .open "GET", "http://www.114time.com/api/time.php", False
  5.     echo;   .send
  6.     echo;   ms = .responseText*1
  7.     echo;End With
  8.     echo;WSH.Echo DateAdd("s", left(ms, len(ms^)-3^)+480*60, "1970-1-1 0:0:0"^)
  9. )>%tmp%\dt.vbs
  10. for /f "tokens=1*" %%i in ('cscript -nologo %tmp%\dt.vbs') do date %%i&time %%j
  11. 1pause
  12. for /f "tokens=1*" %%i in ('cscript -nologo %tmp%\dt.vbs') do echo;date %%i&echo;time %%j
  13. 1pause
  14. for /f "tokens=1*" %%i in ('cscript -nologo %tmp%\dt.vbs') do (echo %%i|date&echo %%j|time)
  15. 1pause
  16. exit
复制代码

TOP

返回列表