Comment detail

実行時間の測定 (Nested Flatten)
バッチで書いてみました。(言わずもがなと思いますが、精度は期待しないでください。)

現在時刻の取得にtimeコマンドを使用しています。timeコマンドの出力形式はロケールに
依存するため、事前にコードページ番号を 932(日本)にしておく必要があります。

Windows XPで動作を確認。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
@echo off
  setlocal
    set t1=0
    set t2=0

    call :time t1
    ping -n 3 127.0.0.1>NUL
    call :time t2

    for /f "delims=" %%t in ('set /a "t2-t1"') do echo %%t (ms)
  endlocal
goto :EOF

:time
  set h=0
  set m=0
  set s=0
  set _=0
  set t=

  :: 標準出力を介して改行コードを渡すことで、timeコマンドを終了させる。
  for /f "tokens=2 delims= " %%t in ('echo.^|time') do set t=%%t

  ::  8進数として解釈されないよう 0を加算する。
  for /f "tokens=1,2 delims=." %%a in ('echo %t%') do (
    set t=%%a
    set _=%%b+0
  )

  for /f "tokens=1-3 delims=:" %%a in ('echo %t%') do (
    set /a h=%%a+0
    set /a m=%%b+0
    set /a s=%%c+0
  )

  set /a %1=%h%*3600000+%m%*60000+%s%*1000+%_%
goto :EOF

Index

Feed

Other

Link

Pathtraq

loading...