找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20778|回复: 3

[日期时间] 新手献丑--批处理获取电脑启动了多长时间

[复制链接]
发表于 2024-3-8 16:34:27 | 显示全部楼层 |阅读模式
本帖最后由 likeyou32 于 2024-3-13 09:12 编辑

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1,2 delims=:" %%i in ('time/t') do (
  4. set xian=%%i%%j & set xianshi=%%i & set xianfen=%%j
  5. for /f "skip=1 tokens=10,11 delims=-: " %%a in ('query user') do (
  6. set chu=%%a%%b & set chushi=%%a & set chufen=%%b
  7. )
  8. )
  9. rem endlocal
  10. set /a xianshi=1%xianshi%-100,xianfen=1%xianfen%-100
  11. for /f "skip=1 tokens=6,7,8 delims=- " %%u in ('query user') do (
  12. for /f "tokens=1,2,3 delims=- " %%r in ('date/t') do (
  13. SET DateA=%%u%%v%%w & set DateB=%%r%%s%%t
  14. echo !DateA! !dateb!
  15. )
  16. )
  17. call :DateToDays %DateA:~0,4% %DateA:~4,2% %DateA:~6,2% DaysX
  18. call :DateToDays %DateB:~0,4% %DateB:~4,2% %DateB:~6,2% DaysY
  19. if %DaysX% geq %DaysY% (set /a DayZ=DaysX-DaysY) else (set /a DayZ=DaysY-DaysX)
  20. echo %DateA%和%DateB%间隔的天数是:%DayZ%天
  21. if %xianshi% geq %chushi% (if %xianfen% geq %chufen% set /a fen=%xianfen%-%chufen% & set /a shi=%xianshi%-%chushi% )else (
  22. if %xianfen% geq %chufen% (set /a fen=xianfen-chufen,shi=24-chushi+xianshi-24) else (set /a fen=60+xianfen-chufen,shi=24-chushi+xianshi-24-1)
  23. )
  24. set /a zongshi=DayZ*24+shi
  25. echo 合计%zongshi%小时%fen%分钟
  26. goto :eof

  27. :DateToDays %yy% %mm% %dd% days
  28. setlocal ENABLEEXTENSIONS
  29. set yy=%1&set mm=%2&set dd=%3
  30. if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
  31. set /a dd=100%dd%%%100,mm=100%mm%%%100
  32. set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
  33. set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
  34. endlocal&set %4=%j%&goto :EOF
复制代码
请大家指教
发表于 2024-3-8 17:45:50 | 显示全部楼层
回复 1# likeyou32

  1. @echo off
  2. rem 建议保存为ANSI编码格式
  3. for /f "tokens=1-2 delims=: " %%a in ('powershell "(get-date) - (gcim Win32_OperatingSystem).LastBootUpTime"') do set "%%a=%%b"
  4. echo;系统运行时长为:%Days%天%Hours%时%Minutes%分%Seconds%.%Milliseconds%秒
  5. pause>unl
复制代码
发表于 2024-3-9 12:07:06 | 显示全部楼层
  1. 以零为除数的错误。
  2. 天时分
  3. 找不到操作数。
  4. 合计时分
复制代码

时间差计算参考 批处理计算日期时间差,精确到秒
发表于 2024-3-13 10:58:44 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:32 , Processed in 0.015992 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表