返回列表 发帖

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

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

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

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

也许是原网页改版了,,源码里只有一个时间,或许不是vbs提取的位置。vbs不懂,其他高手看看。
目的,学习批处理

TOP

vbs是获取javascript中的代码tt:( tt = parseInt(timestamp.substring(0, 10));)但是只能获取变量tt名,而非tt代表的时间。
js不懂,等待高手解决。

TOP

S内包含非数字,无法乘以1变为数字,故出此错误提示。

TOP

吐槽
首先,时间同步的问题,是有这个叫NTP的专门协议和标准来解决的。
很多系统和网络设备,比如路由器,一般都是支持NTP网络时间同步。

然后,楼主偏偏爱用各种脚本,然后自己又没有能力写,会发帖子让别人写。
出了问题,自己又没能力解决。

网络时间协议:
https://zh.wikipedia.org/zh-cn/% ... 3%E5%8D%94%E5%AE%9A
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

如何用一个.bat文件运行一下快速与Internet同步计算机时间?
https://zhidao.baidu.com/question/625946177689115404.html
如果想要立刻与新的时间服务器同步,一个.bat的文件
则执行下面的命令:
w32tm /register
net start w32time
w32tm /config /update
w32tm /resync /rediscoverCOPY
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

Setting up NTP on Windows

http://www.satsignal.eu/ntp/setup.html
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 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

回复 10# ygqiang

    JS 同步本机时间与网络时间
    http://www.bathome.net/thread-43147-1-1.html
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 10# ygqiang


    那是微软的作品,找微软改改就好了。
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 11# yu2n


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

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

TOP

回复 13# ygqiang


    很简单。你删掉 WScript.Echo 开头的行。
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 14# yu2n


    多谢。。

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


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

TOP

返回列表