Получите UpTime из PowerShell в удобном для использования виде, но не можете заставить его работать - PullRequest
1 голос
/ 13 марта 2020

Я делаю эту программу, где мне нужно отправить команду в powershell, а взамен она дает мне sys UpTime (минуты работают лучше, но не обязательно)

Поскольку я до сих пор не привык к Используя PowerShell, у меня много проблем с получением этой информации.

Вот что я попробовал:

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

Дает мне время безотказной работы, но я все еще не знаю, как с этим работать, поэтому мне все равно нужно как-то добавить что-то вроде:

    | Select-String -Pattern "TotalMinutes"

Но тогда мне нужно (как-то) сделать так, чтобы PowerShell дал мне это время как возвращение, чтобы я мог работать с ним. может быть, в буфер обмена?

    | clip

Но если я добавлю все это, ни один не будет работать. Помещение в буфер обмена - просто способ, которым я сделал, чтобы получить эту информацию, другие могут также работать. Я все еще очень плохо знаком с этим, извините, если я задену ваш интеллект глупыми вопросами.

Заранее спасибо

1 Ответ

2 голосов
/ 13 марта 2020

Вычитая два экземпляра [datetime] (System.DateTime), вы получаете экземпляр [timespan] (System.TimeSpan), который можно сохранить в переменной:

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

Затем вы можете обращаться к его свойствам по мере необходимости, например, .TotalMinutes:

$timeSpanSinceBoot.TotalMinutes

Чтобы проверить элементы типа значения временного интервала, используйте Get-Member командлет:

$timeSpanSinceBoot | Get-Member # lists properties and methods
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...