Windows 以毫秒为单位打印批处理时间

Windows 以毫秒为单位打印批处理时间,windows,shell,time,batch-file,Windows,Shell,Time,Batch File,我知道,使用@echo%time%可以打印高达厘米秒的批处理时间。是否也有类似的获取毫秒的命令?(编辑:doh,没有注意到这有windows标记。请将答案留在这里,以防其他人在Linux上单击此命令) 如果您要求为程序或脚本的执行长度计时,请在命令前面加上time,例如: time ls -R 这将为您提供以毫秒为单位的执行时间: real 0m0.667s user 0m0.000s sys 0m0.144s 如果您询问当前日期和时间: 看看: man date 比如

我知道,使用
@echo%time%
可以打印高达厘米秒的批处理时间。是否也有类似的获取毫秒的命令?

(编辑:doh,没有注意到这有windows标记。请将答案留在这里,以防其他人在Linux上单击此命令)

如果您要求为程序或脚本的执行长度计时,请在命令前面加上
time
,例如:

time ls -R
这将为您提供以毫秒为单位的执行时间:

real    0m0.667s
user    0m0.000s
sys     0m0.144s
如果您询问当前日期和时间:

看看:

man date
比如说,

date +"%X %N"
这将为您提供以小时:分钟:秒为单位的当前时间,然后是纳秒


希望这能回答您的问题

有一个名为Timethis的资源工具包实用程序,可提供高达毫秒的时间测量:

TimeThis :  Command Line :  dir
TimeThis :    Start Time :  Wed Oct 24 12:49:56 2012
TimeThis :      End Time :  Wed Oct 24 12:49:56 2012
TimeThis :  Elapsed Time :  00:00:00.093

Gnu
gdate
可以使这变得非常简单;例如,在批处理文件中尝试下面的代码。我使用它为在命令窗口中调用的批处理创建唯一的文件名,在我的windows 7系统上,很明显,至少在命令窗口中,两次直接连续使用gdate不会产生相同的结果

gdate +"%%Y%%m%%d%%H%%M%%S%%N"
gdate +"%%Y%%m%%d%%H%%M%%S%%N"

set i=
set T=
for /f %%i in ('gdate +%%Y%%m%%d%%H%%M%%S%%N') do set UniqueTime=%%i

echo %UniqueTime%
但我实际上使用了更像下面这一行的东西,丢弃了最后五位数字,因为就我的目的而言,它们似乎并不重要:前面的部分总是唯一的。这使得唯一的文件名更短

gdate +"%%Y%%m%%d%%H%%M%%S%%N" | sed "s/.....$//"
很明显,相同的表达式在Linux下工作,因此也可以在那里使用它。

ptime实用程序的精度为“5ms或更高”

ptime echo hallo
适用于Win32的ptime 1.0,免费软件-http://www.pc-tools.net/
版权所有(C)2002,Jem Berkes
==回声哈罗===
你好
执行时间:0.022秒
使用。这也是获得成功的可靠途径


批处理文件的速度是否太快,以至于10毫秒(平均5毫秒)会产生影响?命令shell中没有内置用于获取毫秒时间的命令,但是powershell具有get Date命令,该命令返回一个包含毫秒的对象
ptime echo hallo

ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes <jberkes@pc-tools.net>

===  echo hallo ===
hallo

Execution time: 0.022 s
for /F "usebackq tokens=2 delims==" %%i in (
    `wmic os get LocalDateTime /VALUE`
) do @set ctime=%%i
echo milliseconds: %ctime:~15,3%