此程式是使用M$內的command指令寫成,主要是對時間做比對(大多是是拿來當delay的效果),這樣的範例網路上蠻多的如果有興趣可以自己去找來寫寫看

====================================================================================================

@echo off
:1
setlocal enableextensions
echo %time%
call :ProcDelay 50000
echo %time%
goto :1

:ProcDelay delayMSec_
setlocal enableextensions
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%i
:_procwaitloop
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%i
set /a diff_=%now_%-%start_%
if %diff_% LSS %1 endlocal & goto :1
if %diff_% LSS %1 goto _procwaitloop
endlocal & goto :1

======================================================================================================

把粗體字做成bat檔就可以使用,ProcDelay後面的時間單位是字串,原本輸出的格式是HH:MM:SS.SS之後把他拆解成HHMMSSSS這樣的字串,然後在相減(我沒找到型態轉換的指令,所以有時測試時會出現error的情況,但不影響程式的運作),所以50000其原本因該是5:00.00(五分鐘),這程式也不可以跨天,跨天後就會陷入無窮loop中,這整個程式雖然最初是做Delay用但附加的好處他很操CPU,單核的情況下都會被吃滿,且如果在輸出制檔案時(ex barrery.bat > time.txt)還會定時寫入資料,整體來說使用他來測試電池使用時間是非常的準,多核的情況下就多開個memtest順到測個記憶體或者放個CD音樂都能測出電池重載下的性能!!

arrow
arrow
    全站熱搜

    doomcat 發表在 痞客邦 留言(0) 人氣()