1

Я запускаю net session для извлечения пользователя. Время простоя. В некоторых строках время простоя поступает в формате 06D 21H 03M i.e xD yH zM. Я хочу рассчитать общие минуты.Как конвертировать время 06D 21H 03M в полные минуты в Powershell

Хотя я могу попробовать использовать split и match, но это будет похоже на бег как петли mulitple.

ответ

1

Вы можете попробовать использовать метод TimeSpanParseExact:

[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 Server).
  • Больше не может протестировать его под PowerShell 3.0.
  • Не работает в версии PowerShell версии 2.0.
+0

Ошибка вызова метода, поскольку [System.TimeSpan] не содержит метода с именем «ParseExact». – Sambhav

+0

ОК выглядит как проблема с версией, потому что она отлично работает на другой версии, а не на версии 2.0. Спасибо. – Sambhav

+1

В PowerShell 2.0 вы можете использовать регулярные выражения и внутри TimeSpan Constuctor. – JPBlanc

 Смежные вопросы

  • Нет связанных вопросов^_^