我正在尝试获得 cpu 速度。
这是我到目前为止所做的
$cpu = [string](get-wmiobject Win32_Processor | select name)
$($cpu.split("@")[-1]).trim()
我的输出是
2.40GHz}
如何在不使用字符串函数的情况下从输出中删除“}”?有没有更好的方法来实现我的目标?提前致谢
我正在尝试获得 cpu 速度。
这是我到目前为止所做的
$cpu = [string](get-wmiobject Win32_Processor | select name)
$($cpu.split("@")[-1]).trim()
我的输出是
2.40GHz}
如何在不使用字符串函数的情况下从输出中删除“}”?有没有更好的方法来实现我的目标?提前致谢
PS > $p = Get-WmiObject Win32_Processor | Select-Object -ExpandProperty Name
PS > $p -replace '^.+@\s'
2.40GHz
你知道吗……我不开心!
Powershell 提供对象!对象包含信息,而您仍在尝试操作字符串的人
(get-wmiobject Win32_Processor).MaxClockSpeed
给出最大 CPU
之后你可以给出你想要的字符串格式
$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[]
.