批处理获取系统安装时间/系统开机时间/电脑唤醒时间及开机使用时间(五)原理说明

因为有朋友觉得看代码太麻烦了,问我这段代码的逻辑,我想可能也有人想要,也为了以后自己看的时候提个醒,就把整个代码的逻辑帖出来。
整体思路:

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=^+两空行的方法实现窗口显示内容的换行。

这些就是全部代码的逻辑关系了。