首页 > 解决方案 > 将 UpTime 从 powershell 转换为可用的方式,但无法使其正常工作

问题描述

我一直在制作这个程序,我需要向 powershell 发送命令,作为回报,它给了我 sys UpTime (分钟工作得更好,但不是强制性的)

由于我仍然不习惯使用 powershell,因此在获取此英特尔时遇到了很多问题。

这是我尝试过的:

    (get-date) - (gcim Win32_OperatingSystem).LastBootUpTime

给了我正常运行时间,但我仍然不知道如何使用它,所以我仍然需要以某种方式添加如下内容:

    | Select-String -Pattern "TotalMinutes"

但是后来我需要(以某种方式)使那个powershell给我那个时间作为回报,这样我就可以使用它了。也许到剪贴板?

    | clip

但如果我把所有这些都加起来,没有一个会起作用。放入剪贴板只是我获取此信息的一种方式,其他人可能也可以。我对此还是很陌生,如果我用愚蠢的问题伤害了你的智力,我很抱歉。

提前致谢

标签: powershelltimereturn-valueselection

解决方案


通过减去两个[datetime]( System.DateTime) 实例,您得到一个[timespan]( System.TimeSpan) 实例,您可以将其存储在一个变量中:

$timeSpanSinceBoot = (Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTime

然后,您可以根据需要访问其属性,例如.TotalMinutes

$timeSpanSinceBoot.TotalMinutes

要检查时间跨度值类型的成员,请使用Get-Membercmdlet:

$timeSpanSinceBoot | Get-Member # lists properties and methods

推荐阅读