批处理之家's Archiver

Batcher 发表于 2009-2-23 20:10

用Internet时间服务器来同步本机系统时间的批处理

[quote]【方案一】
原文地址:[url]http://www.cn-dos.net/forum/viewthread.php?tid=46143[/url]
wget.exe下载地址:[url]http://bbs.bathome.net/thread-1114-1-1.html[/url][/quote][code]@echo off
cls
color 2f
cd /d %~dp0
Echo.&&Echo.正在与Internet时间服务器同步……&&Echo.===================================================
wget -N http://weasel.jgxx.com/wsqbbs/time.php >nul 2>nul
title 瓦斯曲-同步时间服务器工具
for /f "tokens=1,2 " %%i in (time.php) do date %%i &&time %%j
for /f "tokens=1,2 " %%i in (time.php) do echo 同步成功!!&& echo 服务器日期 %%i 系统日期 %date% &&echo 服务器时间 %%j 系统时间 %time%
del /f /s /q time.php >nul 2>nul
Echo.==================================================&&Echo.按任意键退出!!&&pause>nul 2>nul[/code][quote]【方案二】
原文地址:[url]http://www.cn-dos.net/forum/viewthread.php?tid=38908#pid268141[/url]
wget.exe下载地址:[url]http://bbs.bathome.net/thread-1114-1-1.html[/url][/quote][code]@echo off
wget -N http://www.appinn.com/servertime.php
for /f "tokens=1,2 " %%i in (servertime.php) do date %%i &&time %%j[/code][quote]【方案三】
原文地址:[url]http://www.cn-dos.net/forum/viewthread.php?tid=38908#pid268223[/url][/quote][code]//这是一段在网上找到的系统时间自动更新JS脚本,任意Web服务器都可以用来协对时间而且也不用vb来改时间,保存为*.js点击运行即可
//get HTTP Date: response from server, return approximate dateVal object
function getServerDate(serverHttpAddress, httpProxyAddress)
{
var xmlHttp = new ActiveXObject("msxml2.xmlhttp");
if(httpProxyAddress)
{
setProxy(2,proxyHttpAddress.replace("http://",""));
}
xmlHttp.open("GET", serverHttpAddress, 0);
ts=(new Date()).getTime();
WScript.Echo("Start time: " + ts);
xmlHttp.send();
tr=new Date();
WScript.Echo("End time: " + tr.getTime());
WScript.Echo("Server Time: " + Date.parse( xmlHttp.getResponseHeader('Date')));
//Thu, 1 Jan 2009 09:47:01 GMT
tr.setTime(Date.parse( xmlHttp.getResponseHeader('Date')) + ((new Date()).getTime() - ts)/2);
//1230805540107
WScript.Echo("debug time: " + tr)
return tr;
//}
//catch(e)
//{
// return 0
//}
}

//set system time to dateString
//http://www.microsoft.com/technet/scriptcenter/topics/networking/08_atnc_advanced.mspx
//http://www.microsoft.com/technet/scriptcenter/guide/sas_wmi_fvwp.mspx?mfr=true
//20030327073509.519000+480
function setSystemDate(dateString)
{
WScript.Echo("End time: " + dateString);
var oSvc = GetObject("winmgmts:\\\\.\\root\\cimv2");
oSvc.Security_.Privileges.AddAsString("SeSystemTimePrivilege", 1);
var e = new Enumerator(oSvc.execQuery("select * from win32_OperatingSystem", "WQL", 32));
//for (;!e.atEnd();e.moveNext())e.item().SetDateTime(dateString);
}

//generating the right WMI DATETIME fields
with(getServerDate("http://www.google.com/")) //和哪一个HTTP服务器进行同步
{
setSystemDate("" +
getUTCFullYear() +
(getUTCMonth()<9?"0"+(getUTCMonth()+1):(getUTCMonth()+1)) +
(getUTCDate()<9?"0"+getUTCDate():getUTCDate()) +
(getUTCHours()<9?"0"+getUTCHours():getUTCHours()) +
(getUTCMinutes()<9?"0"+getUTCMinutes():getUTCMinutes()) +
(getUTCSeconds()<9?"0"+getUTCSeconds():getUTCSeconds()) +
".******+***");
}[/code]

jellykid 发表于 2009-2-24 18:15

没成功
不知道怎么回师

Batcher 发表于 2009-2-24 20:26

回复 2楼 的帖子

我不知道你用的哪个代码,所以帮不上你!!!!

jellykid 发表于 2009-2-25 18:44

1 2段代码都是,
3段也错误,不用解决  ,解决1 2段代码就行了

Batcher 发表于 2009-2-25 20:52

回复 4楼 的帖子

不同的系统,日期时间可能不同,你可以自己先看看获取的internet日期时间格式是否和本机的一致,如果不一致,自己改改格式。

tireless 发表于 2009-2-25 21:06

也可以用 vbs 下载网页文字:

批处理实现网页下载 [url]http://www.cn-dos.net/forum/viewthread.php?tid=24394[/url]

jellykid 发表于 2009-2-26 15:56

呵呵!
好象是格式的问题!
小白就是没办法!55555555...
什么时候才能学好啊!

wxcute 发表于 2009-2-26 19:03

早知道有这个帖子,前段时间就不写了。

CMOS 漏电,几乎天天校时[code]::从批处理之家论坛校时
::就是从我们论坛校时
@echo off
cd/d %~dp0
echo 校时前:
echo %date% %time%
wget -O "%tmp%\tmp$d$t.txt" "http://bbs.bathome.net/logging.php?action=login" -q
for /f "tokens=5,6 delims=< " %%d in ('"findstr /i "现在时间是" "%tmp%\tmp$d$t.txt""') do (
 date %%d&time %%e
)
del "%tmp%\tmp$d$t.txt"
echo+
echo 校时后:
echo %date% %time%[/code]

Batcher 发表于 2009-2-26 19:43

回复 7楼 的帖子

每个人都是从不会到会走过来的,多潜水多练习,不必妄自菲薄。

fhplove 发表于 2009-9-30 19:37

回复 4楼 的帖子

显示系统无法接受输入的时间   

1,可能4楼你在输入日期时格式出现了错误(只是考虑这个问题)
2,检查你的"防火墙,杀毒软件,"是否进行了日期保护措施

    个人认为第2个可能性大点,因为我曾经做万佳网络文化园的代理时,盛天易游戏管理平台为了本地游戏与服务器游戏同步并且更新主机游戏列表都与要完全跟服务器时间一直,所以保护时间了,(请确保你没在网吧测试这段代码)

Batcher 发表于 2010-2-27 20:32

回复 11楼 的帖子

把wget.exe和批处理放在同一个目录

zhuzhen830201 发表于 2016-10-28 22:05

有两个问题
1运行【方案一】显示system can't find the file time.php这是什么原因?
2get -N http://weasel.jgxx.com/wsqbbs/time.php >nul 2>nul的意思是什么?

Bella 发表于 2016-10-28 22:44

[i=s] 本帖最后由 Bella 于 2016-10-29 12:22 编辑 [/i]

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=192326&ptid=3449]12#[/url] [i]zhuzhen830201[/i] [/b]


windows 用自带的时间同步就行了, 默认同步频率 7 天/次, 改注册表可以精确到秒
同步服务器(IP 池) 用 ntp 官方的 pool.ntp.org, 带智能解析, 跑哪个国家都行

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.