在Windows cmd中将系统时间精确到毫秒

在Windows cmd中将系统时间精确到毫秒,windows,cmd,timestamp,milliseconds,Windows,Cmd,Timestamp,Milliseconds,我试图在Windows cmd中将系统时间精确到毫秒。我知道可以使用以下方法获得厘米秒的精度: echo %time% 我发现其他问题的答案都是一样的,但没有一个答案能完全回答这个问题。以下是我到目前为止的发现: 此解决方案仅适用于厘米秒精度(与我上面描述的相同): 此解决方案提供计时器解决方案,但不提供打印当前时间戳解决方案: 任何帮助都将不胜感激。正如尼尔指出的,cmd中没有本机解决方案。对于有权改用PowerShell的任何人,您可以使用以下选项: (Get-Date -UForma

我试图在Windows cmd中将系统时间精确到毫秒。我知道可以使用以下方法获得厘米秒的精度:

echo %time%
我发现其他问题的答案都是一样的,但没有一个答案能完全回答这个问题。以下是我到目前为止的发现:

此解决方案仅适用于厘米秒精度(与我上面描述的相同):

此解决方案提供计时器解决方案,但不提供打印当前时间戳解决方案:


任何帮助都将不胜感激。

正如尼尔指出的,cmd中没有本机解决方案。对于有权改用PowerShell的任何人,您可以使用以下选项:

(Get-Date -UFormat "%Y-%m-%d %H:%M:%S").toString() + "." + ((Get-Date).millisecond)
也许有一种更简洁的方法,但这对我来说是有效的

由于问题被标记为
cmd
,因此从cmd调用该问题的适当命令行是:

powershell -command "(Get-Date -UFormat '%Y-%m-%d %H:%M:%S').toString() + '.' + ((Get-Date).millisecond)"

对你来说可能是可行的

如果您有管理员权限,
如果您在WINDOWS系统上运行
如果您将一台联网机器配置为(另一台机器的)时间从机,
如果只想测量时间增量,
您可以查询Windows“W32tm”实用程序

它给你上一次的微秒时间 时间同步,通过呼叫

C:\> w32tm /query /status /verbose
(Lotsa资料打印出来)

然后只拔出上次同步时间的行

C:\> w32tm /query /status /verbose | FIND "Time since"

Time since Last Good Sync Time: 15554.1918553s
然后,从BAT文件执行以下操作:

for /F "tokens=7 delims= " %%a in ('w32tm /query /status /verbose ^| find "Time since" ') do set BEFORE_TIME=%%a
(您要测量的内容在此处)


如果您想自动执行减法,只需再多做一点工作,但这是可以做到的

我会编写一个程序来执行,并从windows cmd调用它。在这方面有限制吗?我肯定已经有很多实用程序可以使用,但我希望我错过了一些更明显的东西。这似乎是大多数操作系统的标准配置。朋友,MS-DOS是很久以前写的不过,powershell中可能有更多的支持。这不可能。我只是想在制定解决方案之前确定一下。在这种情况下,我不是系统管理员,所以我希望将内容保持在cmd的能力范围内。另外,我只是想知道,以备将来参考。纯ms dos(现代或其他)不存在本机解决方案。问题是:通过接受厘米秒甚至秒的延迟来加载powershell(或任何其他实用程序),以毫秒的精度获取时间是否有用?如果每次记录时间时都加载PowerShell或其他实用程序,则我同意。然而,在我的例子中,我只对记录单个PowerShell会话期间的时间感兴趣。哎呀,我的示例行缺少FIND命令:like so:C:>w32tm/query/status/verbose | FIND“time-since”请将代码格式化为代码,这样我们就更容易阅读了。
for /F "tokens=7 delims= " %%a in ('w32tm /query /status /verbose ^| find "Time since" ') do set AFTER_TIME=%%a