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

我使用笔记本电脑的时候,不关机只休眠,有时候想看看电池用了多久,就要看系统运行时间。但用软件又比较麻烦,有些还不准。因为休眠的时候电脑没关机,显示的时间可能是上次开机的时间。研究了半天,通过批处理读取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:,并以管理员权限运行才行。就这了得到最后一个时间用了两个半天,真是书到用时方恨少啊。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kim5659

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值