【问题标题】:Get system time accurate to milliseconds in Windows cmd在 Windows cmd 中获取精确到毫秒的系统时间
【发布时间】:2016-06-22 15:09:41
【问题描述】:

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

echo %time%

我发现其他问题的问题完全相同,但没有完全回答问题的答案。以下是我目前发现的:

此解决方案仅适用于厘秒精度(与我上面描述的相同): Print time in a batch file (milliseconds)

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

任何帮助将不胜感激。

【问题讨论】:

  • 我会编写一个程序来执行它并从 windows cmd 调用它。在这方面有限制吗?
  • 我确信已经有很多实用程序可供我使用,但我希望我遗漏了一些更明显的东西。这似乎是大多数操作系统的标准配置。
  • MS-DOS 是很久以前写的,朋友。 ;) 不过,powershell 可能会提供更多支持。
  • 这不可能。在研究解决方法之前,我只是想确定一下。在这种情况下,我不是系统管理员,所以我希望将事情保持在 cmd 的能力范围内。另外,我只是想知道以供将来参考。
  • 不存在纯 ms-dos(现代或其他)的本地解决方案,不。

标签: windows cmd timestamp milliseconds


【解决方案1】:

正如 Neil 指出的,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)"

【讨论】:

  • 问题是:通过接受毫秒甚至秒的延迟来加载powershell(或任何其他实用程序)来获得毫秒精度的时间是否有用?
  • 如果您每次记录时间时都加载 PowerShell 或其他实用程序,那么我同意。然而,就我而言,我只对记录单个 PowerShell 会话期间的时间感兴趣。
【解决方案2】:

对你来说可能是一件可行的事情

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

它为您提供自上次以来的微秒 时间同步,通过调用

C:\> w32tm /query /status /verbose

(打印出很多东西)

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

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

(您要测量的内容放在这里)

for /F "tokens=7 delims= " %%a in ('w32tm /query /status /verbose ^| find "Time since" ') do set AFTER_TIME=%%a

如果您想自动减法,则需要做更多的工作,但可以完成

【讨论】:

  • 糟糕,我的示例行缺少 FIND 命令:像这样:C:> w32tm /query /status /verbose |查找“时间”
  • 请将您的代码格式化为代码,以便我们阅读。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-21
  • 2011-04-13
相关资源
最近更新 更多