![NTP 时间 - 在命令行中获取远程 NTP 服务器的时间](https://linux22.com/image/1630078/NTP%20%E6%97%B6%E9%97%B4%20-%20%E5%9C%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E8%8E%B7%E5%8F%96%E8%BF%9C%E7%A8%8B%20NTP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%97%B6%E9%97%B4.png)
本质上,我想在 DOS 或 powershell 中从公共 NTP 服务器获取准确的时间。
我知道有 w32tm 可以查询远程 ntp 服务器,但它给出的结果是我的计算机时间偏离了多少,而不是远程 ntp 服务器的实际时间。
我发现各种 Windows 应用程序都能按我想要的方式运行,但我无法将输出结果传递给变量以执行任何操作。我很惊讶没有 .exe 可以从源获取时间,或者没有将其写入 w32tm。
我想要的是类似 ntpquery.exe pool.ntp.org(后面可能跟着时区或其他东西)并输出日期/时间。
我知道有一个命令另一个问题显示以下结果:
w32tm /stripchart /computer:foo
Tracking foo [1.2.3.4].
The current time is 19/07/2012 17:39:48 (local time).
17:39:48 d:-00.0000840s o:-25.3004160s [@ | ]
这表明当地的系统时间(可能和我的情况一样是错误的)以及与 NTP 服务器的偏差(上面的例子是 0.00000840s)
如果我运行这个,我可以得到 +/- 3000 秒甚至更多的结果,这并没有给我 NTP 服务器的实际时间,只是告诉我我有多偏离。
我正在寻找一种从 DOS/powershell 中的 NTP 源获取时间的方法,以便我可以将其用作变量。
答案1
感谢大家的回复...尤其是 CraftyB...不过我最终找到了一种方法来做到这一点并想与大家分享。
我所做的就是使用这个应用程序(免费) https://www.meinbergglobal.com/english/sw/ntp.htm 安装后..然后从安装中获取 libcrypto-1_1.dll 和 ntpdate.exe,并编写脚本以从远程 ntp 服务器获取结果。
效果很好。非常感谢大家的意见 - CraftyB,你的回答是一个有效的答案,而且也有效。所以我最终可能会迁移到那个!