腳本計算時間
發布時間: 2025-01-07 23:04:20
A. 我錄制的按鍵精靈的腳本,從開始運行到結束一共用了多長時間,如何計算。
你可以在在腳本裡面加入在控制台列印當前時間的操作,開始時列印一次,結束時列印一次,這樣只需要減掉你列印時間的延遲時間就得出其他操作的總時間了。
B. bat讀取時間、計算時間間隔腳本
@echooff
title同一月份下的耗時計算
::獲取起始月份、起始日期、起始小時和起始分鍾
setstartmonth=%date:~5,2%
setstartday=%date:~8,2%
setstarthour=%time:~0,2%
setstartmin=%time:~3,2%
echo.&echo修改系統日期和時間為未來同一個月份下的某日某月某時某分以便測試腳本
echo完成修改後按任意鍵繼續
pause>nul
::獲取終止月份、終止日期、終止小時和終止分鍾
setendmonth=%date:~5,2%
setendday=%date:~8,2%
setendhour=%time:~0,2%
setendmin=%time:~3,2%
::初始化間隔日期變數、間隔小時變數和間隔分鍾變數
setintday=0
setinthour=0
setintmin=0
::初始化耗時變數
setinttime=0
::如果結束月份和起始月份不在同一月則調用calc4標簽
if%endmonth%NEQ%startmonth%(call:calc4&goto:finalresult)
::如果結束日期等於起始日期則調用calc1標簽
if%endday%EQU%startday%(call:calc1&goto:finalresult)
::如果結束日期大於起始日期則調用calc2標簽
if%endday%GTR%startday%(call:calc2&goto:finalresult)
::如果結束日期小於起始日期則調用calc3標簽
if%endday%LSS%startday%(call:calc3&goto:finalresult)
::備註:沒有規避同一天內結束小時小於起始小時、以及同一小時內結束分鍾小於起始分鍾的情況,因為在腳本運行過程中,邏輯上一般不會出現這兩種情況。
::顯示耗時
:finalresult
echo耗時:%inttime%
exit/b
::同一天內的耗時計算需考慮到結束分鍾小於起始分鍾的時候從終止小時借位的情況
:calc1
if/i%endmin%LSS%startmin%(set/aintmin=endmin+60-startmin&set/aendhour-=1)else(set/aintmin=endmin-startmin)
set/ainthour=endhour-starthour
set/aintday=endday-startday
setinttime=%intday%天%inthour%小時%intmin%分鍾
goto:eof
::同一月份但不同天內的耗時計算需考慮到結束分鍾小於起始分鍾的時候從終止小時借位的情況需考慮到結束小時小於起始小時的時候從終止日期借位的情況
:calc2
if/i%endmin%LSS%startmin%(set/aintmin=endmin+60-startmin&set/aendhour-=1)else(set/aintmin=endmin-startmin)
if/i%endhour%LSS%starthour%(set/ainthour=endhour+24-starthour&set/aendday-=1)else(set/ainthour=endhour-starthour)
set/aintday=endday-startday
setinttime=%intday%天%inthour%小時%intmin%分鍾
goto:eof
::同一月份下結束日期邏輯上不能小於起始日期拋出錯誤
:calc3
setinttime=錯誤!結束日期小於起始日期!
goto:eof
::跨月份的情況忽略不計
:calc4
setinttime=跨月份忽略耗時計算
goto:eof
C. 鎸夐敭綺劇伒鎬庝箞鏌ョ湅褰曞埗鑴氭湰鎬繪椂闂
1銆佸畾涔変竴涓鍏ㄥ矓鍙橀噺T錛屽苟鎶婂綋鍓嶆椂闂磋祴鍊肩粰T錛屽惎鍔ㄤ竴涓綰跨▼錛岃$畻褰撳墠榪愯屾椂闂達紝鎵撳嵃鍑烘潵銆
2銆佷嬌鐢≒luginSysGetTime鎷鍙峰嚱鏁拌幏鍙栧綋鍓嶇郴緇熸椂闂達紝璁板綍涓嬭剼鏈寮濮嬪拰緇撴潫鐨勬椂闂達紝鐩稿噺寰楀埌榪愯屾椂闂達紝杞鎹㈡垚灝忔椂銆佸垎閽熴佺掔殑鏍煎紡錛屾樉紺哄嚭鏉ャ
D. 如何統計按鍵精靈的運行時間
//首先定義一個全局變數T,並把當前時間賦值給T,啟動線程,計算當前運行時間,與其他腳本沒有沖突
Dimenv T
T = now
BeginThread 運行時間
Sub 運行時間
Do
TracePrint DiffADate(t)
Delay 1000
loop
End Sub
Function DiffADate (theDate)
DiffADate = "運行時間為:" & DateDiff("s", theDate, now)
End Function
熱點內容