如何用批处理命令手动为电脑同步获取网络时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用批处理命令手动为电脑同步获取网络时间相关的知识,希望对你有一定的参考价值。

网上有不少通过time.tianqi.com网站获取时间的方案,都是过时代码,对代码不太了解的,不太容易修改,近期我用到这个东西,动手修改了一下,主要就是通过网页代码数据获取时间。当前版本的内容是类似:var timestamp = "155749644870";这样,获取到后边的155749644870即可。下面内容保存到bat文件里执行即可。
@echo off
title 获取网络时间

cd /d "%tmp%"
(
echo With CreateObject("Microsoft.XMLHTTP"^)
echo .open "GET", "http://time.tianqi.com/", False
echo .send
echo s = Split(.responseText, "var timestamp = "^&""""^)^(1^)
echo s = Split(s,""""^)^(0^)
echo s = left(s,10^)
echo End With
echo WSH.Echo DateAdd("s", s * 1, "1970-1-1 8:00"^)
)>getTime.vbs

for /f "tokens=1*" %%i in ('cscript //nologo gettime.vbs') do date %%i & time %%j

echo 设置完成!
pause
参考技术A @echo off
::这个意思是获取192.168.1.100时间
net time \\192.168.1.100
::这个意思是同步192.168.1.100时间
net time \\192.168.1.100 /set
参考技术B 以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI/*&cls&echo off
rem 获取网络时间对本地电脑进行时间同步/校准
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
for /f "tokens=1*" %%a in ('cscript -nologo -e:jscript "%~f0"') do (
    echo;%%a %%b
    date %%a
    time %%b
)
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/
function add(z)return Number(z)<10?'0'+z:z;
var req=null, now=null;
var mx=['MSXML2.ServerXMLHTTP.6.0','MSXML2.ServerXMLHTTP.3.0','MSXML2.ServerXMLHTTP'];
var host=['moc+udiab+www##:sptth','moc+oaboat+www##:sptth','moc+vtcc+www##:sptth'];
for(var i=0;i<mx.length;i++)
    try
        req=new ActiveXObject(mx[i]);
        break;
    catch(err)

if(req==null)WSH.StdErr.WriteLine("Can't build XMLHTTP object");WSH.Quit();

for(var i=0;i<host.length;i++)
    try
        url=host[i].replace(/#/g,'/').split('').reverse().join('').replace(/\\+/g,'.');
        req.open('GET', url, false);
        req.send();
        var gmt=req.getResponseHeader('Date');
        if(gmt !=''&&gmt !=null)
            WSH.StdErr.WriteLine(gmt);
            now=new Date(gmt);
            break;
        
    catch(err)WSH.StdErr.WriteLine(err.message);

if(now !=null)
    var y=now.getFullYear(),m=now.getMonth()+1,d=now.getDate();
    var hh=now.getHours(),mm=now.getMinutes(),ss=now.getSeconds();
    WSH.echo(y+'-'+add(m)+'-'+add(d)+' '+add(hh)+':'+add(mm)+':'+add(ss));
elseWSH.StdErr.WriteLine('Failed to get Internet Time');
WSH.Quit();

如何用dat批处理文件关闭某端口对应程序-Windows自动化命令

如何用dat批处理文件关闭某端口对应程序?

网上找到的大部分都是手动操作,第一步先查出端口,第二步在根据上一步查到的端口手动去关闭进程。但我的需求不是这样的,我需要全自动处理。用于 dubbo 服务进程在 Windows 环境下的关闭。如果 Linux 环境,则不需那么辛苦了。

找了大半天,终于在百度知道上得到参考案例(或许是我使用的关键词不对),并成功试验,感谢相关贡献者。

答案一:

for /f "tokens=1-5 delims= " %%a in (‘"netstat -ano|findstr "^:指定端口号""‘) do taskkill /pid %%e

 

答案二:

@echo off
set port=1234
for /f "tokens=1-5" %%i in (‘netstat -ano^|findstr ":%port%"‘) do taskkill /pid %%m

 

我自己试验成功的脚本如下:

@echo off
set port=20812
for /f "tokens=1-5" %%i in (‘netstat -ano^|findstr ":%port%"‘) do (
    echo kill the process %%m who use the port %port%
    taskkill /pid %%m
)

参考地址:http://zhidao.baidu.com/link?url=wGa-tP8nkQfi2bla1BRN5ZYjZ1TZzs3sr1QCPS0tS2NHbiUee9byFCNO31imk337DHvOanD05ezYL0NMF0Hopa

以上是关于如何用批处理命令手动为电脑同步获取网络时间的主要内容,如果未能解决你的问题,请参考以下文章

如何用批处理打开文件

XP下如何用shutdown创建一个立即关闭电脑的批处理文件

如何用cmd命令打开本地连接共享

如何用批处理获取指定程序进程的PID

如何用dat批处理文件关闭某端口对应程序-Windows自动化命令

如何用bat文件启动一个exe文件