コマンドの時間測定にバッチスクリプトを使用しています。このスクリプトは StackOverflow で見つけました。残念ながら、正しく動作しない場合があり、残念ながら私はバッチ プログラミングについてあまり知りません。うまくいくときもあれば、うまくいかないときもあるという印象を受けます。おそらく私はこれを誤解していますが、真夜中以降は正しく機能していないようです。
スクリプト:
@echo off
setlocal
rem The format of %TIME% is HH:MM:SS,CS for example 23:59:59,99
set STARTTIME=%TIME%
rem here begins the command you want to measure
dir /s > nul
rem here ends the command you want to measure
set ENDTIME=%TIME%
echo STARTTIME %STARTTIME%
rem convert STARTTIME and ENDTIME to centiseconds
set /A STARTTIME=(1%STARTTIME:~0,2%-100)*360000 + (1%STARTTIME:~3,2%-100)*6000 + (1%STARTTIME:~6,2%-100)*100 + (1%STARTTIME:~9,2%-100)
echo STARTTIME %STARTTIME%
echo ENDTIME %ENDTIME%
set /A ENDTIME=(1%ENDTIME:~0,2%-100)*360000 + (1%ENDTIME:~3,2%-100)*6000 + (1%ENDTIME:~6,2%-100)*100 + (1%ENDTIME:~9,2%-100)
echo ENDTIME %ENDTIME%
rem calculating the duration is easy
set /A DURATION=%ENDTIME%-%STARTTIME%
rem we might have measured the time inbetween days
if %ENDTIME% LSS %STARTTIME% set set /A DURATION=%STARTTIME%-%ENDTIME%
rem outputing
echo DURATION: %DURATION% in centiseconds
endlocal
goto :EOF
30分前に使用していたところ、次の結果が得られました。
STARTTIME 1:29:25.17
STARTTIME 1:29:25.17
ENDTIME 1:29:27.82
ENDTIME 1:29:27.82
DURATION: 1 in centiseconds
だから線で何か
set /A STARTTIME=(1%STARTTIME:~0,2%-100)*360000 + (1%STARTTIME:~3,2%-100)*6000 + (1%STARTTIME:~6,2%-100)*100 + (1%STARTTIME:~9,2%-100)
と
この線
set /A ENDTIME=(1%ENDTIME:~0,2%-100)*360000 + (1%ENDTIME:~3,2%-100)*6000 + (1%ENDTIME:~6,2%-100)*100 + (1%ENDTIME:~9,2%-100)
間違っているようです。
それは何ですか?
よろしく、デビッド