批處理獲取系統安裝時間/系統開機時間/電腦喚醒時間及開機使用時間(一)

我使用筆記本電腦的時候,不關機只休眠,有時候想看看電池用了多久,就要看系統運行時間。但用軟件又比較麻煩,有些還不準。因爲休眠的時候電腦沒關機,顯示的時間可能是上次開機的時間。研究了半天,通過批處理讀取systeminfo和系統日誌數據能夠顯示三個時間:系統安裝時間/系統開機時間/系統喚醒時間。開機使用時間的計算還沒做完,日期格式也沒改,也沒美化,批處理也是個比較麻煩的事,等研究出來了再帖出來吧。先把代碼帖出來。
echo "正在查詢,請稍候……"
cls
@echo off
::提取systeminfo保存爲systeminfo.txt文件
systeminfo >d:\systeminfo.txt

::導出1000條系統日誌存爲d:\log.txt文件
wevtutil qe system /c:1000 /rd:true /f:text >d:\log.txt

::在d:\log.txt文件中提取含有Power-Troubleshooter的行保存在d:\aaa.txt文件內。
findstr /n "Power-Troubleshooter" d:\log.txt >d:\aaa.txt

::提取d:\aaa.txt文件第一行並更新到d:\aaa.txt(即最後一次休眠喚醒時間)
setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%i in ('findstr /n .* "d:\aaa.txt"') do (
set /a m+=1& if !m!==1 (echo %%j>d:\bbb.txt)) 

::提取行數
for /f "tokens=1,2 delims=:" %%i in (d:\bbb.txt) do set /a var=%%i

::顯示內容"初始安裝日期"和“系統啓動時間”
type d:\systeminfo.txt | findstr /B "初始安裝日期" && type d:\systeminfo.txt | findstr /B "系統啓動"

::顯示休眠喚醒時間
for /f "skip=%var% delims=" %%a in (d:\log.txt) do (
set date=%%~a
goto :Result
)
:Result
for /f "tokens=1,2 delims= " %%i in ("%date%") do echo 系統喚醒時間:    %%j
echo 如果顯示系統喚醒時間,則開機時間爲喚醒時間,否則開機時間爲啓動時間。
del d:\aaa.txt
del d:\bbb.txt
del d:\log.txt
del d:\systeminfo.txt
echo ------------------------------
pause
echo on
exit
如上代碼複製保存到txt文本中,並改文件擴展名爲bat,放在任意位置執行即可,但是硬盤一定要有D分區,不然執行不成功,還要把代碼中的所有的路徑d:改成c:,並以管理員權限運行才行。就這了得到最後一個時間用了兩個半天,真是書到用時方恨少啊。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章