查看: 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& ...
[尴尬][尴尬][尴尬]
回复
使用道具
举报
显身卡