虽然它在输出的第三行中起作用但它没有值

时间:2017-03-15 11:37:06

标签: cmd

for /f "delims=.+-" %A in ('wmic cpu get loadpercentage') do Set dt=%A

但输出是

 :\Users\diablo>Set dt=LoadPercentage
 :\Users\diablo>Set dt=1
 :\Users\diablo>Set dt=

虽然我希望它只保留cpu loadpercentage(数字)

2 个答案:

答案 0 :(得分:0)

不要让它有多条线......

for /f %a in ('wmic cpu get LoadPercentage /value^|find "="') do @set /a %a
echo %LoadPercentage%

答案 1 :(得分:0)

跳过标题行并环绕另一个for /F循环以避免显示为空的尾随行(实际上它们包含由for /F的Unicode到ANSI转换不良导致的孤立回车字符; a第二个for /F循环是摆脱它们的最可靠方式):

for /F "skip=1 delims=" %A in ('wmic CPU get LoadPercentage') do @for /F "delims=" %B in ("%A") do set "dt=%B"

或者,使用wmic的其他输出格式不必跳过任何内容(仍然是for /F两次):

for /F "delims=" %A in ('wmic CPU get LoadPercentage /VALUE') do @for /F "tokens=2 delims==" %B in ("%A") do set "dt=%B"

由于LoadPercentage仅包含纯数字值,因此我删除了分隔符.+-