batch-file - WMIC LastBootUptime 格式问题,需要的总天数

标签 batch-file cmd wmic

我正在尝试计算上次使用 CMD 重新启动计算机的时间。

但我不希望它采用年/月/日格式。

发送总天数、小时数和分钟数

这是我到目前为止所能做的:

setlocal 
 for /f "skip=1" %%i in ('wmic /node:Computer /USER / os get lastbootuptime') do (
  set string=%%i 
  goto next 
 ) 
 :next 
 echo Son Restart: %string:~6,2%/%string:~4,2%/%string:~0,4%---%string:~8,2%:%string:~10,2%

输出:儿子重启:17/11/2023---02:33

但我需要的是:2 天 - 8 小时 - 43 分钟

注意:我应该只使用 CMD,而不使用 powershell

非常感谢您提前的支持。

最佳答案

如果您乐意使用 WMIC,那么我可以提供替代方法吗:

@Echo Off
SetLocal EnableExtensions
Set "s="
For /F EOL^=S %%G In ('%SystemRoot%\System32\wbem\WMIC.exe Path
 Win32_PerfFormattedData_PerfOS_System Get SystemUptime  2^>NUL
 ') Do Set /A s=%%G, d=s / 86400, s %%= 86400, h=s / 3600,^
 s %%= 3600, m=s / 60, s=s %% 60 2>NUL
If Defined s (Echo %d% Days - %h% Hours - %m% Minutes
    Pause)
EndLocal
Exit /B

当然,如果您也需要的话,您可以选择在输出中添加后缀 - %s% Seconds

关于batch-file - WMIC LastBootUptime 格式问题,需要的总天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77505194/

相关文章:

windows - 仅使用批处理文件修剪前导斜线

for-loop - WMIC 最后修改包含在 for 循环中

windows - 为什么此批处理脚本中的FOR/f循环求空行?

variables - 变量的批量路径替换

windows - 使用 .BAT 脚本查找文件匹配和变量分配

powershell - Powershell中批处理文件中的错误识别

java - 批处理文件执行可以单步执行序列而不完成 java 进程吗?

windows - 如何使用 cmd/batch 获取 Windows 可执行文件的 "Original Filename"详细信息字段

java - CMD:如何将 java -version 的结果写入/打印到某个文件

windows - Windows Docker WMIC