Получение скорости процессора и удаление} из вывода

Я пытаюсь получить скорость процессора.

Это то, что я сделал до сих пор

$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[],

Другие вопросы по тегам