如何在 Powershell 中将时间 06D 21H 03M 转换为总分钟数

How to convert time 06D 21H 03M to total minutes in Powershell

我 运行 net session 提取用户空闲时间,在某些行中,空闲时间以 06D 21H 03M 格式出现,即 xD yH zM。我想计算总分钟数。

虽然我可以尝试使用拆分和匹配,但它会像 运行 像多个循环一样。

您可以尝试使用TimeSpan ParseExact方法:

[timespan]::ParseExact("06D 21H 03M", "dd\D\ h\H\ mm\M", $null).totalminutes

这里给出9903。

一定要尝试捕捉表达式,因为它在某种程度上对格式很敏感。


已编辑:

  • 在 PowerShell 5.0 (Windows 10) 下工作正常。
  • 在 PowerShell 4.0 (Windows 7 + W2K12 服务器) 下工作正常。
  • 无法再在 PowerShell 3.0 下进行测试。
  • 不适用于 PowerShell 2.0 版。