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

因爲有朋友覺得看代碼太麻煩了,問我這段代碼的邏輯,我想可能也有人想要,也爲了以後自己看的時候提個醒,就把整個代碼的邏輯帖出來。
整體思路:

1、是通過systeminfo把系統初始安裝日期和電腦加電開機日期這兩個時間提取出來。

2、提取日誌提取電腦從休眠中喚醒的時間。
3、通過判斷“加電開機”時間和“休眠喚醒”時間的大小,通過查詢時的時間減去“加電開機”時間或“休眠喚醒”時間得到電腦運行時間。
4、通過msg調用系統窗口顯示內容。

具體實現細節:

1、systeminfo>d:\systeminfo.txt 將systeminfo全部內容保存到d盤的systeminfo.txt文件中。
在這裏插入圖片描述

2、通過wevtutil 提取系統日誌中的最近1000條。保存到d盤的log.txt文件。時間順序是從新到舊。
在這裏插入圖片描述

3、因爲在系統日誌內“Source: Microsoft-Windows-Power-Troubleshooter”的內容爲系統喚醒的標誌,它的下一行是喚醒的時間。所以將所有含有標誌的行都提取出來,並加上行標誌保存到d盤的aaa.txt內,最上面一行就是最近一次的喚醒標誌所在的行。

在這裏插入圖片描述4、把第一行內容保存到d盤的bbb.txt文件內。
在這裏插入圖片描述

5、從bbb.txt文件內容取出冒號前的內容,即爲行數。給變量var.
6、在log.txt文件中忽略var行後,後面一行就是喚醒時間所在的行,提取出來後給變量time0.
7、把time0(Date: 2020-04-28T19:13:24.207)進行美化,變更與systeminfo裏面的時間一樣的格式。保存爲變量wtime1
8、把從systeminfo中提取的系統加電啓動的時間。並將年月日時分分段計算並累加,精確到分,秒忽略。並把總和給變量btime_all
8、同樣把喚醒時間累加並賦值給變量wtime_all.當前時間累加給變量ntime_all.
9、通過判斷加電啓動時間和喚醒時間的大小,用當前時間減去,得到電腦使用時間。
10、刪除所有臨時文件。
11、通過msg命令在桌面環境顯示相關內容。使用set aa=^+兩空行的方法實現窗口顯示內容的換行。

這些就是全部代碼的邏輯關係了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章