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

时间:2016-07-01 05:16:56

标签: powershell powershell-v2.0 powershell-v3.0 powershell-v4.0

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

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

1 个答案:

答案 0 :(得分:1)

您可以尝试使用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版下无效。