получение скорости процессора и удаление} из вывода - PullRequest
1 голос
/ 12 июля 2011

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

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

$cpu = [string](get-wmiobject Win32_Processor | select name)
$($cpu.split("@")[-1]).trim()

и мой вывод

2.40GHz}

Как я могу удалить "}" из моего вывода без необходимости играть со строковыми функциями? Есть ли лучший способ достичь моей цели? Заранее спасибо

Ответы [ 3 ]

4 голосов
/ 12 июля 2011
PS > $p = Get-WmiObject Win32_Processor | Select-Object -ExpandProperty Name
PS > $p -replace '^.+@\s'
2.40GHz
3 голосов
/ 12 июля 2011

Вы знаете, что ... Я несчастен!

Powershell дает объекты! Объект содержит информацию, и ребята, вы все еще пытаетесь манипулировать строками

(get-wmiobject Win32_Processor).MaxClockSpeed

Дает максимальный процессор

После этого вы можете указать желаемый формат строки

$cpuSpeed = ((get-wmiobject Win32_Processor).MaxClockSpeed)/1000
$cpuspeedstring = ("{0}Go" -f  $cpuspeed)
0 голосов
/ 12 июля 2011

split() и trim(), между прочим, строковые функции.

Вы можете заменить }:

$($cpu.split("@")[-1]).trim() -replace '}',''

Добавление: Вотболее простой способ.

$cpu = (get-wmiobject Win32_Processor).name.split(' ')[-1]

}, который вы видели, был артефактом, полученным путем преобразования результатов Select-Object (который создает объект) в string.Вместо этого вы просто берете свойство name напрямую, вместо этого разделяете пробел и берете последний сегмент string[].

...