查看: 25028|回复: 6
[日期时间]
批处理如何取得开机时长?
[复制链接]
tempasdf
tempasdf
当前离线
积分17
电梯直达
1楼
发表于 2023-6-26 21:43:52
|
只看该作者
|倒序浏览
|阅读模式
各位:
想判断开机时间是否大于等于2天,想取得 powershell (get-date) - (gcim Win32_OperatingSystem).LastBootUpTime 命令中 Days : 后面的数值,命令行如何写?
回复
举报
77七
77七
当前离线
积分3264
2楼
发表于 2023-6-26 22:07:57
|
只看该作者
@echo off
for /f "tokens=1* delims=: " %%a in ('powershell -c "(get-date) - (gcim Win32_OperatingSystem).LastBootUpTime" ^|findstr /b "Days"') do (
echo %%b
if %%b geq 2 (
echo 大于等于2天
) else (
echo 小于2天
)
)
pause复制代码
保存为ansi编码格式
回复
举报
buyiyang
buyiyang
当前离线
积分883
3楼
发表于 2023-6-26 22:39:22
|
只看该作者
(New-TimeSpan (gcim Win32_OperatingSystem).LastBootUpTime).Days -ge 2复制代码
回复
举报
tempasdf
tempasdf
当前离线
积分17
4楼
楼主|
发表于 2023-9-21 18:28:10
|
只看该作者
回复 2# 77七
再请教一下,win7系统如何完成判断?
回复
举报
77七
77七
当前离线
积分3264
5楼
发表于 2023-9-21 21:11:53
|
只看该作者
回复 4# tempasdf
这个代码我不懂,或许可以升级powershell试试?
回复
举报
Five66
Five66
当前离线
积分1648
6楼
发表于 2023-9-21 22:03:25
|
只看该作者
这样子应该行吧
@if (0)/*==(0)/* echo off
set /a day=2*24*3600
for /f %%i in ('cscript //nologo //e:jscript "%~f0"') do set n=%%i
set n=%n:~0,-3%
if %day% leq %n% (
echo 大于或等于2天
) else (
echo 小于2天
)
pause&exit/b
rem */@end
var nil=null,td=new Date(),dt=new ActiveXObject('WbemScripting.SWbemDateTime');
for(var e=new Enumerator(GetObject("winmgmts:").InstancesOf ("Win32_OperatingSystem"));!e.atEnd();e.moveNext())
{
dt.value=e.item().LastBootUpTime;
WScript.Echo(td-dt.GetVarDate());
}
dt=nil;
复制代码
回复
举报
Nsqs
Nsqs
当前离线
积分570
7楼
发表于 2023-10-7 05:38:21
|
只看该作者
[datetime]::now.AddSeconds(-[System.Environment]::TickCount/1000)复制代码win7不知道,你可以试试
回复
举报
!