1

我正在尝试获得 cpu 速度。

这是我到目前为止所做的

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

我的输出是

2.40GHz}

如何在不使用字符串函数的情况下从输出中删除“}”?有没有更好的方法来实现我的目标?提前致谢

4

3 回答 3

4
PS > $p = Get-WmiObject Win32_Processor | Select-Object -ExpandProperty Name
PS > $p -replace '^.+@\s'
2.40GHz
于 2011-07-12T06:43:30.827 回答
3

你知道吗……我不开心!

Powershell 提供对象!对象包含信息,而您仍在尝试操作字符串的人

(get-wmiobject Win32_Processor).MaxClockSpeed

给出最大 CPU

之后你可以给出你想要的字符串格式

$cpuSpeed = ((get-wmiobject Win32_Processor).MaxClockSpeed)/1000
$cpuspeedstring = ("{0}Go" -f  $cpuspeed)
于 2011-07-12T08:15:56.390 回答
0

split()并且trim()是字符串函数,顺便说一句。

您可以更换}

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

附录:这是一个更简单的方法。

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

您看到的}是通过将Select-Object(创建对象)的结果转换为string. 相反,您只需name直接获取属性,而是拆分空格字符并获取string[].

于 2011-07-11T22:13:38.777 回答