新手献丑

新手献丑

查看: 10312|回复: 59

[分享]

新手献丑--批处理获取电脑开机了多长时间

[复制链接]

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

电梯直达

1#

发表于 2024-3-13 10:00:30

|

只看该作者

|倒序浏览

|阅读模式

加入VIP会员,获无忧币,赠积分,送勋章,下载无限制,获论坛最高级会员权限 !

本帖最后由 likeyouli 于 2025-2-20 10:46 编辑

复制代码@echo off

setlocal enabledelayedexpansion

for /f "tokens=1,2 delims=:" %%i in ('time/t') do (

set xian=%%i%%j & set xianshi=%%i & set xianfen=%%j

for /f "skip=1 tokens=10,11 delims=-: " %%a in ('query user') do (

set chu=%%a%%b & set chushi=%%a & set chufen=%%b

)

)

rem endlocal

set /a xianshi=1%xianshi%-100,xianfen=1%xianfen%-100

for /f "skip=1 tokens=6,7,8 delims=- " %%u in ('query user') do (

for /f "tokens=1,2,3 delims=- " %%r in ('date/t') do (

SET DateA=%%u%%v%%w & set DateB=%%r%%s%%t

echo !DateA! !dateb!

)

)

call :DateToDays %DateA:~0,4% %DateA:~4,2% %DateA:~6,2% DaysX

call :DateToDays %DateB:~0,4% %DateB:~4,2% %DateB:~6,2% DaysY

if %DaysX% geq %DaysY% (set /a DayZ=DaysX-DaysY) else (set /a DayZ=DaysY-DaysX)

echo %DateA%和%DateB%间隔的天数是:%DayZ%天

if %xianshi% geq %chushi% (if %xianfen% geq %chufen% set /a fen=%xianfen%-%chufen% & set /a shi=%xianshi%-%chushi% )else (

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)

)

set /a zongshi=DayZ*24+shi

echo 本次开机已%zongshi%小时%fen%分钟

pause

goto :eof

:DateToDays %yy% %mm% %dd% days

setlocal ENABLEEXTENSIONS

set yy=%1&set mm=%2&set dd=%3

if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)

set /a dd=100%dd%%%100,mm=100%mm%%%100

set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2

set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633

endlocal&set %4=%j%&goto :EOF复制代码

缩进什么的,不太规范,见谅,以前习惯用论坛l大师的显示硬件信息工具来获取电脑启动了多长时间。附件与上述代码完全一样,但有时候论坛引用代码的时候常丢字符、出一些奇怪问题。 见15楼,通用性更强。

电脑开机了多长时间.txt

2024-3-13 10:03 上传

点击文件名下载附件

下载积分: 无忧币 -2

1.45 KB, 下载次数: 33, 下载积分: 无忧币 -2

点评

yyz2191958

PE 不能使用

发表于 2024-3-13 10:13

yyz2191958

辛苦了

发表于 2024-3-13 10:04

评分

参与人数 1无忧币 +2

收起

理由

yyz2191958

+ 2

辛苦了

查看全部评分

收藏3

支持0

反对0

回复

使用道具

举报

提升卡

沉默卡

喧嚣卡

变色卡

千斤顶

显身卡

yyz2191958

yyz2191958

当前离线

积分44481

IP卡

狗仔卡

2#

发表于 2024-3-13 10:03:29

|

只看该作者

谢谢分享

点评

likeyouli

pe不能用 ? 奇怪了 ,cmd下你输入query user 看看显示什么

详情

回复

发表于 2024-3-13 10:15

回复

使用道具

举报

显身卡

zlq_hysy

zlq_hysy

当前离线

积分11569

IP卡

狗仔卡

3#

发表于 2024-3-13 10:06:28

|

只看该作者

感谢提供的分享,学一下

回复

使用道具

举报

显身卡

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

4#

楼主|

发表于 2024-3-13 10:15:15

|

只看该作者

yyz2191958 发表于 2024-3-13 10:03

谢谢分享

pe不能用 ? 奇怪了 ,cmd下你输入query user 看看显示什么

点评

yyz2191958

Microsoft Windows [版本 10.0.10586]

(c) 2016 Microsoft Corporation。保留所有权利。

X:\Windows\System32>query user

'query' 不是内部或外部命令,也不是可运行的程序

或批处理文件。

X:\Windows\Syst

详情

回复

发表于 2024-3-13 10:27

回复

使用道具

举报

显身卡

guong

guong

当前离线

积分12365

IP卡

狗仔卡

5#

发表于 2024-3-13 10:19:01

|

只看该作者

感谢分享

回复

使用道具

举报

显身卡

yyz2191958

yyz2191958

当前离线

积分44481

IP卡

狗仔卡

6#

发表于 2024-3-13 10:27:20

|

只看该作者

likeyouli 发表于 2024-3-13 10:15

pe不能用 ? 奇怪了 ,cmd下你输入query user 看看显示什么

Microsoft Windows [版本 10.0.10586]

(c) 2016 Microsoft Corporation。保留所有权利。

X:\Windows\System32>query user

'query' 不是内部或外部命令,也不是可运行的程序

或批处理文件。

X:\Windows\System32>

点评

likeyouli

@echo off

setlocal enabledelayedexpansion

for /f "tokens=1,2 delims=:" %%i in ('time/t') do (

set xian=%%i%%j & set xianshi=%%i & set xianfen=%%j

for /f "tokens=4,5 delims=: " %%a in ('systeminfo

详情

回复

发表于 2024-3-13 11:59

szwp

wmic path Win32_PerfFormattedData_PerfOS_System Get SystemUptime

试试这个有没结果

详情

回复

发表于 2024-3-13 11:04

likeyouli

你们都运行不了query命令

E:\>query /?

QUERY { PROCESS | SESSION | TERMSERVER | USER }

上传我电脑里的两个文件,你们可以试试 ,放到系统分区\Windows\System32下

详情

回复

发表于 2024-3-13 10:57

回复

使用道具

举报

显身卡

dai202403

dai202403

当前离线

积分55

IP卡

狗仔卡

7#

发表于 2024-3-13 10:47:37

|

只看该作者

谢谢分享!

回复

使用道具

举报

显身卡

it323

it323

当前离线

积分2378

IP卡

狗仔卡

8#

发表于 2024-3-13 10:47:53

|

只看该作者

学习,谢谢分享!

回复

使用道具

举报

显身卡

zlq_hysy

zlq_hysy

当前离线

积分11569

IP卡

狗仔卡

9#

发表于 2024-3-13 10:48:59

|

只看该作者

query.exe被精简了,我这也是报错

点评

likeyouli

见我上一楼刚发的,试试能用不 ?

详情

回复

发表于 2024-3-13 12:02

likeyouli

见11楼我上传的文件,可以试试,不知道query还依赖不依赖其他文件...

详情

回复

发表于 2024-3-13 10:58

回复

使用道具

举报

显身卡

hehuiying

hehuiying

当前离线

积分5578

IP卡

狗仔卡

10#

发表于 2024-3-13 10:53:45

|

只看该作者

感谢经验分享

回复

使用道具

举报

显身卡

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

11#

楼主|

发表于 2024-3-13 10:57:32

|

只看该作者

yyz2191958 发表于 2024-3-13 10:27

Microsoft Windows [版本 10.0.10586]

(c) 2016 Microsoft Corporation。保留所有权利。

你们都运行不了query命令

E:\>query /?

QUERY { PROCESS | SESSION | TERMSERVER | USER }

上传我电脑里的两个文件,你们可以试试 ,放到系统分区\Windows\System32下

Query.rar

2024-3-13 10:56 上传

点击文件名下载附件

下载积分: 无忧币 -2

45.87 KB, 下载次数: 4, 下载积分: 无忧币 -2

点评

zlq_hysy

xiexie谢谢

发表于 2024-3-13 11:55

yyz2191958

谢谢

发表于 2024-3-13 11:20

回复

使用道具

举报

显身卡

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

12#

楼主|

发表于 2024-3-13 10:58:46

|

只看该作者

zlq_hysy 发表于 2024-3-13 10:48

query.exe被精简了,我这也是报错

见11楼我上传的文件,可以试试,不知道query还依赖不依赖其他文件...

点评

zlq_hysy

3Q

发表于 2024-3-13 11:55

回复

使用道具

举报

显身卡

szwp

szwp

当前离线

积分11191

IP卡

狗仔卡

13#

发表于 2024-3-13 11:04:25

|

只看该作者

yyz2191958 发表于 2024-3-13 10:27

Microsoft Windows [版本 10.0.10586]

(c) 2016 Microsoft Corporation。保留所有权利。

wmic path Win32_PerfFormattedData_PerfOS_System Get SystemUptime

试试这个有没结果

点评

likeyouli

忽然想到关于取余的一个问题,一个变量dd,可能代表09,也可能代表9或19:(其实set /a 后变量可以直接使用,不用百分号引出也行)

用set /a dd=100%dd%%%100,无论dd是9还是09,这里取余后都等于9;

用你昨天说的

详情

回复

发表于 2024-3-13 15:46

yyz2191958

谢谢

详情

回复

发表于 2024-3-13 12:52

yyz2191958

谢谢

发表于 2024-3-13 11:21

回复

使用道具

举报

显身卡

wang1126

wang1126

当前离线

积分5794

IP卡

狗仔卡

14#

发表于 2024-3-13 11:42:11

|

只看该作者

谢谢分享

回复

使用道具

举报

显身卡

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

15#

楼主|

发表于 2024-3-13 11:59:18

|

只看该作者

本帖最后由 likeyouli 于 2024-3-24 07:24 编辑

yyz2191958 发表于 2024-3-13 10:27

Microsoft Windows [版本 10.0.10586]

(c) 2016 Microsoft Corporation。保留所有权利。

@echo off

setlocal enabledelayedexpansion

for /f "tokens=1,2 delims=:" %%i in ('time/t') do (

set xian=%%i%%j & set xianshi=%%i & set xianfen=%%j

for /f "tokens=2-4,6,7 delims=-: " %%a in ('systeminfo^|find "系统启动时间"') do (

set chushi=%%d & set chufen=%%e & set DateA=%%a%%b%%c

)

)

rem endlocal

set /a xianshi=100!xianshi!%%100,xianfen=100!xianfen!%%100

set /a chushi=100!chushi!%%100,chufen=100!chufen!%%100

for /f "tokens=1,2,3 delims=- " %%r in ('date/t') do set DateB=%%r%%s%%t

echo !DateA! !dateb!

call :DateToDays !DateA:~0,4! !DateA:~4,2! !DateA:~6,2! DaysX

call :DateToDays !DateB:~0,4! !DateB:~4,2! !DateB:~6,2! DaysY

if %DaysX% geq %DaysY% (set /a DayZ=DaysX-DaysY) else (set /a DayZ=DaysY-DaysX)

echo %DateA%和%DateB%间隔的天数是:%DayZ%天

if !xianshi! geq !chushi! (if !xianfen! geq !chufen! (set /a fen=xianfen-chufen & set /a shi=xianshi-chushi) else (set /a fen=xianfen+60-chufen,shi=xianshi-chushi-1) )else (

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)

)

set /a zongshi=DayZ*24+shi

echo 本次开机已!zongshi!小时!fen!分钟&echo;

pause

goto :eof

:DateToDays %yy% %mm% %dd% days

setlocal ENABLEEXTENSIONS

set yy=%1&set mm=%2&set dd=%3

if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)

set /a dd=100%dd%%%100,mm=100%mm%%%100

set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2

set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633

endlocal&set %4=%j%&goto :EOF

试试这个pe下能用不 ?systeminfo查询较慢,改成1次使用了...

点评

yyz2191958

谢谢

发表于 2024-3-13 12:52

回复

使用道具

举报

显身卡

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

16#

楼主|

发表于 2024-3-13 12:02:13

|

只看该作者

zlq_hysy 发表于 2024-3-13 10:48

query.exe被精简了,我这也是报错

见我上一楼刚发的,试试能用不 ?

回复

使用道具

举报

显身卡

zlq_hysy

zlq_hysy

当前离线

积分11569

IP卡

狗仔卡

17#

发表于 2024-3-13 12:13:30

|

只看该作者

还不行

搜狗截图20240313121133.jpg (34.32 KB, 下载次数: 248)

下载附件

2024-3-13 12:12 上传

点评

likeyouli

cmd下输入systeminfo,看看返回啥?告诉我一声。奇怪了,cmd内部命令也不行吗

详情

回复

发表于 2024-3-13 12:16

回复

使用道具

举报

显身卡

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

18#

楼主|

发表于 2024-3-13 12:16:27

来自手机

|

只看该作者

zlq_hysy 发表于 2024-3-13 12:13

还不行

cmd下输入systeminfo,看看返回啥?告诉我一声。奇怪了,cmd内部命令也不行吗

点评

zlq_hysy

这个,运行结果是正常的,

初装时间是2023.12.26

详情

回复

发表于 2024-3-13 12:46

回复

使用道具

举报

显身卡

yc2428

yc2428

当前离线

积分10212

IP卡

狗仔卡

19#

发表于 2024-3-13 12:17:44

|

只看该作者

谢谢分享

回复

使用道具

举报

显身卡

aigpt

aigpt

当前离线

积分328

IP卡

狗仔卡

20#

发表于 2024-3-13 12:27:01

|

只看该作者

回复下载 感谢分享

回复

使用道具

举报

显身卡

zlq_hysy

zlq_hysy

当前离线

积分11569

IP卡

狗仔卡

21#

发表于 2024-3-13 12:46:13

|

只看该作者

likeyouli 发表于 2024-3-13 12:16

cmd下输入systeminfo,看看返回啥?告诉我一声。奇怪了,cmd内部命令也不行吗

这个,运行结果是正常的,

初装时间是2023.12.26

点评

likeyouli

刚才又编辑了下帖子,还是15楼,再试试

刚才忘了把下边的query user 替换了 ,不好意思

详情

回复

发表于 2024-3-13 12:54

回复

使用道具

举报

显身卡

yyz2191958

yyz2191958

当前离线

积分44481

IP卡

狗仔卡

22#

发表于 2024-3-13 12:52:59

|

只看该作者

szwp 发表于 2024-3-13 11:04

wmic path Win32_PerfFormattedData_PerfOS_System Get SystemUptime

试试这个有没结果

谢谢

点评

likeyouli

刚才15楼的代码重新编辑了一下,麻烦你能否在pe下测试, 看看能否显示开机时间,,

详情

回复

发表于 2024-3-13 13:00

回复

使用道具

举报

显身卡

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

23#

楼主|

发表于 2024-3-13 12:54:41

|

只看该作者

zlq_hysy 发表于 2024-3-13 12:46

这个,运行结果是正常的,

初装时间是2023.12.26

刚才又编辑了下帖子,还是15楼,再试试

刚才忘了把下边的query user 替换了 ,不好意思

回复

使用道具

举报

显身卡

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

24#

楼主|

发表于 2024-3-13 13:00:35

|

只看该作者

yyz2191958 发表于 2024-3-13 12:52

谢谢

刚才15楼的代码重新编辑了一下,麻烦你能否在pe下测试, 看看能否显示开机时间,,

点评

yyz2191958

谢谢

详情

回复

发表于 2024-3-13 13:01

回复

使用道具

举报

显身卡

yyz2191958

yyz2191958

当前离线

积分44481

IP卡

狗仔卡

25#

发表于 2024-3-13 13:01:57

|

只看该作者

likeyouli 发表于 2024-3-13 13:00

刚才15楼的代码重新编辑了一下,麻烦你能否在pe下测试, 看看能否显示开机时间,,

谢谢

回复

使用道具

举报

显身卡

fegr

fegr

当前离线

积分6654

IP卡

狗仔卡

26#

发表于 2024-3-13 13:17:16

来自手机

|

只看该作者

感谢分享

回复

使用道具

举报

显身卡

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

27#

楼主|

发表于 2024-3-13 15:46:05

|

只看该作者

szwp 发表于 2024-3-13 11:04

wmic path Win32_PerfFormattedData_PerfOS_System Get SystemUptime

试试这个有没结果

忽然想到关于取余的一个问题,一个变量dd,可能代表09,也可能代表9或19:(其实set /a 后变量可以直接使用,不用百分号引出也行)

用set /a dd=100%dd%%%100,无论dd是9还是09,这里取余后都等于9;

用你昨天说的set /a dd=1%dd%-100,只有dd是两位数,即09或19、29的时候才能正确取到结果,如果dd为9的时候则不行。

结论:如果不清楚变量为一位数还是两位数的话,还是用set /a dd=100%dd%%%100取余,适用更广。

点评

szwp

输入日期已经有要求格式了,如果输入24111,是按照24.1.11还是24.11.1呢?

详情

回复

发表于 2024-3-13 15:54

回复

使用道具

举报

显身卡

szwp

szwp

当前离线

积分11191

IP卡

狗仔卡

28#

发表于 2024-3-13 15:54:18

|

只看该作者

likeyouli 发表于 2024-3-13 15:46

忽然想到关于取余的一个问题,一个变量dd,可能代表09,也可能代表9或19:(其实set /a 后变量可以直接使 ...

输入日期已经有要求格式了,如果输入24111,是按照24.1.11还是24.11.1呢?

点评

likeyouli

我并没有否定您的意思,我知道这种格式情况下无论%%100,还是-100得出的结果都是一样的。

忽又想到一种情况,一个变量dd,可能是9、09、009、119、0009、1119,假定最多4位数吧,要求把数字前边的0去掉,就可以

详情

回复

发表于 2024-3-14 09:12

回复

使用道具

举报

显身卡

szwp

szwp

当前离线

积分11191

IP卡

狗仔卡

29#

发表于 2024-3-13 16:04:33

|

只看该作者

只是计算开机时间的话,百年之内不需要这么复杂的。

http://www.bathome.net/viewthrea ... p;extra=&page=1

点评

likeyouli

[尴尬][尴尬][尴尬]

详情

回复

发表于 2024-3-13 16:07

回复

使用道具

举报

显身卡

likeyouli

likeyouli

当前离线

积分6904

IP卡

狗仔卡

30#

楼主|

发表于 2024-3-13 16:07:11

来自手机

|

只看该作者

szwp 发表于 2024-3-13 16:04

只是计算开机时间的话,百年之内不需要这么复杂的。

http://www.bathome.net/viewthread.php?tid=16147& ...

[尴尬][尴尬][尴尬]

回复

使用道具

举报

显身卡

相关推荐

如何快速注册电子邮件账户:终极步骤指南与安全小贴士
短信群发用的比较多的工具是哪个?好用吗?
365体育投注3

短信群发用的比较多的工具是哪个?好用吗?

📅 08-01 👁️ 6150
“家”:“宀”下为何是个“豕”
www.28365-365.com

“家”:“宀”下为何是个“豕”

📅 07-26 👁️ 4139
绍兴地区本田UR-V大降价!最低仅售17.58万!仅此一次
【問題】請問有哪些忍者遊戲呢?? @PSP / PlayStation Portable 哈啦板
买电脑去哪个网站好?
365体育投注3

买电脑去哪个网站好?

📅 07-25 👁️ 8332
明白了,java为什么用接口,接口有什么作用?
bt365体育在线官网

明白了,java为什么用接口,接口有什么作用?

📅 07-21 👁️ 138
Outlook如何定时发送邮件:7个简单操作,教你轻松定时邮件发送
电脑清灰一般多少钱啊?电脑清灰价格
www.28365-365.com

电脑清灰一般多少钱啊?电脑清灰价格

📅 07-03 👁️ 3196