【问题标题】:Print Batch Time in Milliseconds以毫秒为单位的打印批处理时间
【发布时间】:2012-10-24 16:32:33
【问题描述】:

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

【问题讨论】:

  • 您的批处理文件是否如此之快以至于 10 毫秒(平均 5 毫秒)会产生影响?
  • 命令 shell 没有内置任何东西来获取毫秒的时间,但是 powershell 有 Get-Date 命令,它返回一个包含毫秒的对象

标签: windows shell time batch-file


【解决方案1】:

有一个名为 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

【讨论】:

    【解决方案2】:

    (编辑:doh,没有注意到这有 windows 标签。在​​此处留下答案,以防其他人在 Linux 上点击此)

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

    time ls -R
    

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

    real    0m0.667s
    user    0m0.000s
    sys     0m0.144s
    

    如果您询问当前日期和时间:

    看看:

    man date
    

    例如,

    date +"%X %N"
    

    这将为您提供当前时间,单位为 Hour:Minutes:Seconds,然后是纳秒

    希望这能回答你的问题

    【讨论】:

      【解决方案3】:

      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 下也有效,所以也可以在那里使用。

      【讨论】:

        【解决方案4】:

        ptime 实用程序是“5ms 或更好”的准确度

        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
        

        【讨论】:

          【解决方案5】:

          使用wmic os get LocalDateTime。这也是获取locale-independent date and time的可靠方法

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-03-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-11
            • 1970-01-01
            相关资源
            最近更新 更多