Получение скорости процессора и удаление} из вывода
Я пытаюсь получить скорость процессора.
Это то, что я сделал до сих пор
$cpu = [string](get-wmiobject Win32_Processor | select name)
$($cpu.split("@")[-1]).trim()
и мой вывод
2.40GHz}
Как я могу удалить "}" из моего вывода без необходимости играть со строковыми функциями? Есть ли лучший способ достичь моей цели? заранее спасибо
3 ответа
PS > $p = Get-WmiObject Win32_Processor | Select-Object -ExpandProperty Name
PS > $p -replace '^.+@\s'
2.40GHz
Вы знаете, что... Я несчастен!
Powershell дает объекты! Объект содержит информацию, и ребята, вы все еще пытаетесь манипулировать строками
(get-wmiobject Win32_Processor).MaxClockSpeed
Дает максимальный процессор
После этого вы можете указать желаемый формат строки
$cpuSpeed = ((get-wmiobject Win32_Processor).MaxClockSpeed)/1000
$cpuspeedstring = ("{0}Go" -f $cpuspeed)
split()
а также trim()
кстати, строковые функции.
Вы можете заменить }
:
$($cpu.split("@")[-1]).trim() -replace '}',''
Приложение: вот более простой способ.
$cpu = (get-wmiobject Win32_Processor).name.split(' ')[-1]
}
вы видели, был артефакт, произведенный путем приведения результатов Select-Object
(который создает объект) к string
, Вместо этого вы просто берете name
напрямую, разделите символ пробела и возьмите последний сегмент string[]
,